diff --git a/blueprints/adventurelog/adventurelog.svg b/blueprints/adventurelog/adventurelog.svg new file mode 100644 index 00000000..3ead70da --- /dev/null +++ b/blueprints/adventurelog/adventurelog.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/blueprints/adventurelog/docker-compose.yml b/blueprints/adventurelog/docker-compose.yml new file mode 100644 index 00000000..67ce6ce9 --- /dev/null +++ b/blueprints/adventurelog/docker-compose.yml @@ -0,0 +1,51 @@ +version: "3.8" + +services: + web: + image: ghcr.io/seanmorley15/adventurelog-frontend:latest + restart: unless-stopped + depends_on: + - server + environment: + # Frontend needs to know where the backend is + PUBLIC_SERVER_URL: ${PUBLIC_SERVER_URL} + ORIGIN: ${ORIGIN} + BODY_SIZE_LIMIT: ${BODY_SIZE_LIMIT} + + db: + image: postgis/postgis:16-3.5 + restart: unless-stopped + volumes: + - postgres_data:/var/lib/postgresql/data/ + environment: + POSTGRES_DB: ${POSTGRES_DB} + POSTGRES_USER: ${POSTGRES_USER} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} + + server: + image: ghcr.io/seanmorley15/adventurelog-backend:latest + restart: unless-stopped + depends_on: + - db + volumes: + - adventurelog_media:/code/media/ + environment: + # DB settings for Django + PGHOST: ${PGHOST} + POSTGRES_DB: ${POSTGRES_DB} + POSTGRES_USER: ${POSTGRES_USER} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} + + # Django app settings + SECRET_KEY: ${SECRET_KEY} + DJANGO_ADMIN_USERNAME: ${DJANGO_ADMIN_USERNAME} + DJANGO_ADMIN_PASSWORD: ${DJANGO_ADMIN_PASSWORD} + DJANGO_ADMIN_EMAIL: ${DJANGO_ADMIN_EMAIL} + DEBUG: ${DEBUG} + CSRF_TRUSTED_ORIGINS: ${CSRF_TRUSTED_ORIGINS} + FRONTEND_URL: ${FRONTEND_URL} + PUBLIC_URL: ${PUBLIC_URL} + +volumes: + postgres_data: {} + adventurelog_media: {} diff --git a/blueprints/adventurelog/template.toml b/blueprints/adventurelog/template.toml new file mode 100644 index 00000000..94c79f81 --- /dev/null +++ b/blueprints/adventurelog/template.toml @@ -0,0 +1,44 @@ +[variables] +frontend_domain = "${domain}" +backend_domain = "${domain}" +postgres_password = "${password:16}" +secret_key = "${password:32}" +admin_username = "admin" +admin_password = "${password:12}" +admin_email = "${email}" + +[config] + +# Frontend domain +[[config.domains]] +serviceName = "web" +port = 3000 +host = "${frontend_domain}" + +# Backend domain +[[config.domains]] +serviceName = "server" +port = 80 +host = "${backend_domain}" + +[config.env] +# --- Postgres (values used by both db and server services) +PGHOST = "db" +POSTGRES_DB = "adventure" +POSTGRES_USER = "adventure" +POSTGRES_PASSWORD = "${postgres_password}" + +# --- Django Backend +SECRET_KEY = "${secret_key}" +DJANGO_ADMIN_USERNAME = "${admin_username}" +DJANGO_ADMIN_PASSWORD = "${admin_password}" +DJANGO_ADMIN_EMAIL = "${admin_email}" +DEBUG = "False" +CSRF_TRUSTED_ORIGINS = "http://${backend_domain},http://${frontend_domain}" +FRONTEND_URL = "http://${frontend_domain}" +PUBLIC_URL = "http://${backend_domain}" + +# --- Frontend +PUBLIC_SERVER_URL = "${backend_domain}" +ORIGIN = "http://${frontend_domain}" +BODY_SIZE_LIMIT = "Infinity" diff --git a/meta.json b/meta.json index 18473f89..2f6875b1 100644 --- a/meta.json +++ b/meta.json @@ -85,6 +85,25 @@ "postgresql" ] }, + { + "id": "adventurelog", + "name": "AdventureLog", + "version": "latest", + "description": "AdventureLog is an open-source activity tracker with maps, journaling, and Strava integration.", + "logo": "adventurelog.svg", + "links": { + "github": "https://github.com/seanmorley15/adventurelog", + "website": "https://adventurelog.app/", + "docs": "https://adventurelog.app/docs/" + }, + "tags": [ + "activity", + "maps", + "django", + "react", + "postgres" + ] + }, { "id": "affinepro", "name": "Affine Pro",