nomad

HCL and Docker files for Nomad deployments
git clone https://git.in0rdr.ch/nomad.git
Log | Files | Refs | Pull requests

commit 1846143a63a067fdc9d3d3249c797137a34658af
parent dda24a98c1665e9159422a90dc26786070039a5c
Author: Andreas Gruhler <andreas.gruhler@adfinis.com>
Date:   Fri, 11 Oct 2024 00:57:14 +0200

feat(myheats-doc): add droplet

Diffstat:
Mdocker/docker-myheats-nginx/README.md | 37+++++++++++++++++++++++++++++++++++--
Adocker/docker-myheats-nginx/docker-compose.yml | 39+++++++++++++++++++++++++++++++++++++++
Adocker/docker-myheats-nginx/init-db.sh | 7+++++++
3 files changed, 81 insertions(+), 2 deletions(-)

diff --git a/docker/docker-myheats-nginx/README.md b/docker/docker-myheats-nginx/README.md @@ -3,7 +3,15 @@ My Heats Nginx Image Build instructions for Digital Ocean. -Estimated Monthly App Cost: $17.00 (2x$5 services + $7 PostgreSQL db) +Estimated Monthly +- App Cost: $17.00 (2x$5 services + $7 PostgreSQL db) +- Managed external db: $15 +- Droplet (incl. db, app services,): $6 + +https://www.digitalocean.com/pricing + +Build and push images +--------------------- 1 - Prepare build environment (variables are fixed during "vite build" step): @@ -35,4 +43,29 @@ Estimated Monthly App Cost: $17.00 (2x$5 services + $7 PostgreSQL db) buildah push registry.digitalocean.com/myheats/myheats:api -4 - Use `digital-ocean-app.yaml` app spec to configure the app in Digital Ocean. +App service setup +----------------- + +Use `digital-ocean-app.yaml` app spec to configure the app in Digital Ocean + +Droplet setup +------------- + +Cheap and cheerful. + +1 - Create droplet + +2 - Create user + - Configure ssh key and sshd agent + - Configure sudoers + - Install podman + +3 - Clone repo + + git clone --depth=1 https://git.in0rdr.ch/nomad.git nomad.git + cd nomad.git/docker/docker-myheats-nginx/ + +4 - Run podman services (frontend, api, db) + + podman login registry.digitalocean.com/myheats + podman-compose up -d diff --git a/docker/docker-myheats-nginx/docker-compose.yml b/docker/docker-myheats-nginx/docker-compose.yml @@ -0,0 +1,39 @@ +# Use postgres/example user/password credentials +# - https://hub.docker.com/_/postgres +# - https://github.com/docker-library/docs/blob/master/postgres/README.md +version: '3.9' + +services: + myheats-frontend: + container_name: myheats-frontend + image: registry.digitalocean.com/myheats/myheats:latest + networks: + - myheats + + myheats-backend: + container_name: myheats-api + image: registry.digitalocean.com/myheats/myheats:api + networks: + - myheats + + myheats-db: + container_name: myheats-db + image: docker.io/postgres:16-alpine + shm_size: 128mb + environment: + POSTGRES_PASSWORD: example + volumes: + - ./data/pgdata:/var/lib/postgresql/data + - ./init-db.sh:/docker-entrypoint-initdb.d/init-db.sh:ro + networks: + - myheats + + adminer: + container_name: adminer + image: docker.io/adminer:latest + restart: always + networks: + - myheats + +networks: + myheats: diff --git a/docker/docker-myheats-nginx/init-db.sh b/docker/docker-myheats-nginx/init-db.sh @@ -0,0 +1,7 @@ +#!/bin/bash +set -e + +git clone --depth=1 https://git.in0rdr.ch/myheats.git myheats.git +/schema/99-init-db.sql + +cat ./myheats.git/schema/*.sql | psql -h 127.0.0.1 -U postgres -p 5432