summaryrefslogtreecommitdiff
path: root/installation/docker-compose.deploy.yml
blob: 125db4b43ee95dccf6705062e63402e3fc0002c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
services:
  # Silmataivas application
  app:
    image: ${DOCKER_IMAGE}
    restart: unless-stopped
    ports:
      - "4000:4000"
    environment:
      - PHX_HOST=${PHX_HOST:-localhost}
      - SECRET_KEY_BASE=${SECRET_KEY_BASE}
      - DB_ADAPTER=${DB_ADAPTER:-sqlite}
      - DATABASE_URL=${DATABASE_URL:-/app/data/silmataivas.db}
      - OPENWEATHERMAP_API_KEY=${OPENWEATHERMAP_API_KEY}
      - AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID:-}
      - AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY:-}
    volumes:
      - silmataivas_data:/app/data
    # Command to run on container start - will run database migrations before starting the application
    command: sh -c "/app/bin/silmataivas eval 'Silmataivas.Release.setup()' && /app/bin/silmataivas start"
    networks:
      - silmataivas_network
    # Uncomment the following lines if using PostgreSQL
    # depends_on:
    #   db:
    #     condition: service_started
    #     required: false
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:4000/health"]
      interval: 30s
      timeout: 5s
      retries: 3
      start_period: 10s

  # PostgreSQL database
  # To enable PostgreSQL:
  # 1. Uncomment this section
  # 2. Set DB_ADAPTER=postgres in your environment
  # 3. Set DATABASE_URL to your PostgreSQL connection string
  #db:
  #  image: postgres:16-alpine
  #  restart: unless-stopped
  #  ports:
  #    - "5432:5432"
  #  environment:
  #    - POSTGRES_USER=${PGUSER:-postgres}
  #    - POSTGRES_PASSWORD=${PGPASSWORD:-postgres}
  #    - POSTGRES_DB=${PGDATABASE:-silmataivas_prod}
  #  volumes:
  #    - postgres_data:/var/lib/postgresql/data
  #  networks:
  #    - silmataivas_network
  #  # Only start PostgreSQL if DB_ADAPTER is set to postgres
  #  profiles:
  #    - postgres
  #  healthcheck:
  #    test: ["CMD-SHELL", "pg_isready -U postgres"]
  #    interval: 10s
  #    timeout: 5s
  #    retries: 5

volumes:
  silmataivas_data:
  # postgres_data:

networks:
  silmataivas_network:
    driver: bridge