Misago

Misago is fully featured modern forum application that is fast, scalable and responsive.

Directory Structure

    • .env
    • docker-compose.yml

docker-compose.yml

version: '3.0'
 
services:
 
  nginx-proxy:
    build: nginx-proxy
    restart: always
    networks:
      - misago
    ports:
      - "80:80"
      - "443:443"
    environment:
      - ENABLE_IPV6=true
    labels:
      com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy: "true"
    volumes:
      - nginx-certs:/etc/nginx/certs
      - nginx-html:/usr/share/nginx/html
      - /var/run/docker.sock:/tmp/docker.sock:ro
      - ./misago/media:/misago/media:z
      - ./misago/static:/misago/static:z
      - ./config/vhost.d:/etc/nginx/vhost.d:z
      - ./logs/nginx:/var/log/nginx:z
 
  nginx-lets-encrypt:
    image: jrcs/letsencrypt-nginx-proxy-companion:2.2
    restart: always
    networks:
      - misago
    depends_on:
      - nginx-proxy
    volumes:
      - lets-encrypt-acme:/etc/acme.sh
      - nginx-certs:/etc/nginx/certs
      - nginx-html:/usr/share/nginx/html
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./config/vhost.d:/etc/nginx/vhost.d:z
 
  postgres-15:
    image: postgres:15
    restart: unless-stopped
    networks:
      - misago
    environment:
      - POSTGRES_DB=${MISAGO_POSTGRES_DB:-misagodb}
      - POSTGRES_USER=${MISAGO_POSTGRES_USER:-misagodb}
      - POSTGRES_PASSWORD=${MISAGO_POSTGRES_PASSWORD:-misagodbpassword}
      - ENABLE_IPV6=true
    volumes:
      - misago-postgres-15:/var/lib/postgresql/data
 
  redis-6:
    image: redis:6
    restart: unless-stopped
    networks:
      - misago
    volumes:
      - misago-redis-6:/data
 
  misago:
    build: misago
    restart: unless-stopped
    networks:
      misago:
        aliases:
          - misago
    environment:
      - POSTGRES_HOST=${MISAGO_POSTGRES_HOST:-postgres-15}
      - POSTGRES_DB=${MISAGO_POSTGRES_DB:-misagodb}
      - POSTGRES_USER=${MISAGO_POSTGRES_USER:-misagodb}
      - POSTGRES_PASSWORD=${MISAGO_POSTGRES_PASSWORD:-misagodbpassword}
      - SSL_POLICY=Mozilla-Modern
      - VIRTUAL_PROTO=uwsgi
    env_file:
      - ./config/misago.env
    depends_on:
      - nginx-lets-encrypt
      - postgres-15
      - redis-6
    volumes:
      - ./misago/media:/misago/media:z
      - ./misago/static:/misago/static:z
      - ./misago/avatargallery:/misago/avatargallery:ro
      - ./misago/theme:/misago/theme:ro
      - ./backups:/misago/backups:Z
      - ./logs:/misago/logs:z
 
  celery-worker:
    build: misago
    command: celery -A misagodocker worker --loglevel=info
    restart: unless-stopped
    networks:
      misago:
        aliases:
          - misago
    environment:
      - POSTGRES_HOST=${MISAGO_POSTGRES_HOST:-postgres-15}
      - POSTGRES_DB=${MISAGO_POSTGRES_DB:-misagodb}
      - POSTGRES_USER=${MISAGO_POSTGRES_USER:-misagodb}
      - POSTGRES_PASSWORD=${MISAGO_POSTGRES_PASSWORD:-misagodbpassword}
    env_file:
      - ./config/misago.env
    depends_on:
      - postgres-15
      - redis-6
    volumes:
      - ./misago/media:/misago/media:z
      - ./misago/static:/misago/static:z
      - ./misago/theme:/misago/theme:ro
      - ./logs:/misago/logs:z
 
networks:
  misago:
 
volumes:
  nginx-certs:
  nginx-html:
  lets-encrypt-acme:
  misago-postgres-15:
  misago-redis-6:

Resources

Website: https://misago-project.org/

GitHub: https://github.com/rafalp/Misago

Configuration: https://github.com/rafalp/misago_docker