services: db: image: postgres:16-alpine shm_size: 4gb restart: unless-stopped environment: { # This might seem insecure but is usually not a problem. # You should leave this at the "akkoma" default. # The DB is only reachable by containers in the same docker network, # and is not exposed to the open internet. # # If you do change this, remember to update "config.exs". POSTGRES_DB: akkoma, POSTGRES_USER: akkoma, POSTGRES_PASSWORD: akkoma, } volumes: - type: bind source: ./pgdata target: /var/lib/postgresql/data akkoma: image: akkoma/akkoma:latest restart: unless-stopped links: - db ports: [ # Uncomment/Change port mappings below as needed. # The left side is your host machine, the right one is the akkoma container. # You can prefix the left side with an ip. # Webserver (for reverse-proxies outside of docker) # If you use a dockerized proxy, you can leave this commented # and use a container link instead. "127.0.0.1:4000:4000", ] volumes: - ./config/prod.secret.exs:/etc/akkoma/config.exs - ./uploads:/opt/akkoma/uploads - ./instance:/opt/akkoma/instance # Copy this into docker-compose.override.yml and uncomment there if you want to use a reverse proxy #proxy: # image: caddy:2-alpine # restart: unless-stopped # links: # - akkoma # ports: [ # "443:443", # "80:80" # ] # volumes: # - ./docker-resources/Caddyfile:/etc/caddy/Caddyfile # - ./caddy-data:/data # - ./caddy-config:/config