109 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			109 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
version: '3'
 | 
						|
services:
 | 
						|
 | 
						|
  db:
 | 
						|
    restart: always
 | 
						|
    image: postgres:9.6-alpine
 | 
						|
    shm_size: 256mb
 | 
						|
    networks:
 | 
						|
      - internal_network
 | 
						|
    healthcheck:
 | 
						|
      test: ["CMD", "pg_isready", "-U", "postgres"]
 | 
						|
    volumes:
 | 
						|
      - ./postgres:/var/lib/postgresql/data
 | 
						|
 | 
						|
  redis:
 | 
						|
    restart: always
 | 
						|
    image: redis:6.0-alpine
 | 
						|
    networks:
 | 
						|
      - internal_network
 | 
						|
    healthcheck:
 | 
						|
      test: ["CMD", "redis-cli", "ping"]
 | 
						|
    volumes:
 | 
						|
      - ./redis:/data
 | 
						|
 | 
						|
#  es:
 | 
						|
#    restart: always
 | 
						|
#    image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.1.3
 | 
						|
#    environment:
 | 
						|
#      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
 | 
						|
#    networks:
 | 
						|
#      - internal_network
 | 
						|
#    healthcheck:
 | 
						|
#      test: ["CMD-SHELL", "curl --silent --fail localhost:9200/_cluster/health || exit 1"]
 | 
						|
#    volumes:
 | 
						|
#      - ./elasticsearch:/usr/share/elasticsearch/data
 | 
						|
 | 
						|
  web:
 | 
						|
    build: .
 | 
						|
    image: tootsuite/mastodon
 | 
						|
    restart: always
 | 
						|
    env_file: .env.production
 | 
						|
    command: bash -c "rm -f /mastodon/tmp/pids/server.pid; bundle exec rails s -p 3000"
 | 
						|
    networks:
 | 
						|
      - external_network
 | 
						|
      - internal_network
 | 
						|
    healthcheck:
 | 
						|
      test: ["CMD-SHELL", "wget -q --spider --proxy=off localhost:3000/health || exit 1"]
 | 
						|
    ports:
 | 
						|
      - "127.0.0.1:3000:3000"
 | 
						|
    depends_on:
 | 
						|
      - db
 | 
						|
      - redis
 | 
						|
#      - es
 | 
						|
    volumes:
 | 
						|
      - ./public/system:/mastodon/public/system
 | 
						|
 | 
						|
  streaming:
 | 
						|
    build: .
 | 
						|
    image: tootsuite/mastodon
 | 
						|
    restart: always
 | 
						|
    env_file: .env.production
 | 
						|
    command: node ./streaming
 | 
						|
    networks:
 | 
						|
      - external_network
 | 
						|
      - internal_network
 | 
						|
    healthcheck:
 | 
						|
      test: ["CMD-SHELL", "wget -q --spider --proxy=off localhost:4000/api/v1/streaming/health || exit 1"]
 | 
						|
    ports:
 | 
						|
      - "127.0.0.1:4000:4000"
 | 
						|
    depends_on:
 | 
						|
      - db
 | 
						|
      - redis
 | 
						|
 | 
						|
  sidekiq:
 | 
						|
    build: .
 | 
						|
    image: tootsuite/mastodon
 | 
						|
    restart: always
 | 
						|
    env_file: .env.production
 | 
						|
    command: bundle exec sidekiq
 | 
						|
    depends_on:
 | 
						|
      - db
 | 
						|
      - redis
 | 
						|
    networks:
 | 
						|
      - external_network
 | 
						|
      - internal_network
 | 
						|
    volumes:
 | 
						|
      - ./public/system:/mastodon/public/system
 | 
						|
## Uncomment to enable federation with tor instances along with adding the following ENV variables
 | 
						|
## http_proxy=http://privoxy:8118
 | 
						|
## ALLOW_ACCESS_TO_HIDDEN_SERVICE=true
 | 
						|
#  tor:
 | 
						|
#    image: sirboops/tor
 | 
						|
#    networks:
 | 
						|
#      - external_network
 | 
						|
#      - internal_network
 | 
						|
#
 | 
						|
#  privoxy:
 | 
						|
#    image: sirboops/privoxy
 | 
						|
#    volumes:
 | 
						|
#      - ./priv-config:/opt/config
 | 
						|
#    networks:
 | 
						|
#      - external_network
 | 
						|
#      - internal_network
 | 
						|
 | 
						|
networks:
 | 
						|
  external_network:
 | 
						|
  internal_network:
 | 
						|
    internal: true
 |