services: db: image: postgres:16-alpine shm_size: 4gb restart: unless-stopped env_file: - .env 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, } user: ${DOCKER_USER} volumes: - type: bind source: ./pgdata target: /var/lib/postgresql/data - type: bind source: ./config/setup_db.psql target: /docker-entrypoint-initdb.d/setup_db.sql akkoma: image: akkoma/akkoma:next restart: unless-stopped user: ${DOCKER_USER} 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:/opt/akkoma/config - ./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