diff --git a/c3nav/c3nav.cfg b/c3nav/c3nav.cfg new file mode 100644 index 0000000..78f3f5d --- /dev/null +++ b/c3nav/c3nav.cfg @@ -0,0 +1,2 @@ +[c3nav] +svg_renderer=rsvg diff --git a/c3nav/compose.yml b/c3nav/compose.yml new file mode 100644 index 0000000..d15f4a6 --- /dev/null +++ b/c3nav/compose.yml @@ -0,0 +1,100 @@ +version: '3' +name: c3nav + +x-restart-policy: &restart-policy + restart: unless-stopped +x-depends_on-default: &depends_on + condition: service_started +x-depends_on-healthy: &depends_on-healthy + condition: service_healthy +x-healthcheck_defaults: &healthcheck_defaults + interval: 10s + timeout: 2s + retries: 5 + start_period: 5s +x-c3nav-defaults: &c3nav-defaults + image: ghcr.io/c3nav/c3nav:${C3NAV_TAG} + depends_on: + redis: + <<: *depends_on-healthy + volumes: + - type: bind + source: ${C3NAV_DOCKER_DATA_DIR:-./data} + target: /data + bind: + create_host_path: true +x-c3nav-environment: &c3nav-environment + C3NAV_DEBUG: false + C3NAV_LOGLEVEL: info + C3NAV_CONFIG: /data/c3nav.cfg + C3NAV_DATA_DIR: /data + C3NAV_DJANGO_ALLOWED_HOSTS: localhost,127.0.0.1,c3nav-core,c3nav-tiles,${C3NAV_DJANGO_ALLOWED_HOSTS:-""},${C3NAV_DOMAIN} + C3NAV_DJANGO_REVERSE_PROXY: "true" + UWSGI_WORKERS: ${C3NAV_CORE_WORKERS:-2} + C3NAV_DATABASE_BACKEND: postgresql + C3NAV_DATABASE_NAME: ${C3NAV_DATABASE_NAME:-c3nav} + C3NAV_DATABASE_USER: ${C3NAV_DATABASE_USER:-postgres} + C3NAV_DATABASE_HOST: ${C3NAV_DATABASE_HOST:-postgres} + C3NAV_DATABASE_PASSWORD: ${C3NAV_DATABASE_PASSWORD:-postgres} + C3NAV_REDIS: "redis://redis:6379/0" + C3NAV_CELERY_BROKER: "redis://redis:6379/1" + C3NAV_CELERY_BACKEND: "redis://redis:6379/2" + + +services: + c3nav-core: + <<: [*restart-policy, *c3nav-defaults] + command: webstatic-async + environment: + <<: *c3nav-environment + C3NAV_AUTOMIGRATE: yes + healthcheck: + <<: *healthcheck_defaults + test: curl -f http://localhost:8000/ + ports: + - "8000:8000" + networks: + - c3nav + - rick_db + + c3nav-workers: + <<: [*restart-policy, *c3nav-defaults] + command: worker + environment: + <<: *c3nav-environment + C3NAV_AUTOMIGRATE: no + healthcheck: + interval: 30s + timeout: 15s + retries: 2 + start_period: 5s + test: entrypoint worker_healthcheck + networks: + - c3nav + + redis: + <<: *restart-policy + image: redis:7.2 + command: redis-server --save 60 1 --loglevel warning + healthcheck: + <<: *healthcheck_defaults + test: redis-cli ping + volumes: + - "c3nav-redis:/data" + ulimits: + nofile: + soft: 10032 + hard: 10032 + networks: + - c3nav + +volumes: + c3nav-redis: + external: true + +networks: + rick_db: + name: rick_db + external: true + c3nav: + driver: bridge diff --git a/c3nav/env.example b/c3nav/env.example new file mode 100644 index 0000000..8ed49e8 --- /dev/null +++ b/c3nav/env.example @@ -0,0 +1,9 @@ +C3NAV_TAG=8a9cdf1ce88c20a400b1720d75fb0aa08be29519 +C3NAV_DOMAIN=c3nav.docker.localhost +# to change the default database name +C3NAV_DATABASE_HOST=rick_psql +C3NAV_DATABASE_USER=psql +C3NAV_DATABASE_PASSWORD=choose-a-password +C3NAV_DATABASE_NAME=c3nav +# if you want to change the default path to the data dir, which by default is a folder called data in this directory +C3NAV_DOCKER_DATA_DIR=/opt/c3nav/data