summaryrefslogblamecommitdiff
path: root/docker-compose.yml
blob: a13d9b2fc102e5669fe0cad970da3287b6036213 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12











                             
                                            
                        
                                            


               

                                                
                       

             
                

                     

                        







                                                     

                   
               


                                      
                          




                                        
                  
 

                             
                              
                   

             
                





                                             
                
                                                                             



                  
               
            
                                                
      
                    
                                                
                                     
            
                                            



                                               

                                                            



                                                          
               

               
                      
 
                   
                                               
                                    


                   
                         


                                                 
                                                

                                                          
               
 
                 
                                       
                                  

                           
                                           


               
                  
                                       
                                   

                           
                                     






                              
                
                                  
                                 









                        
                                             






                                      
                                          










                                                                    
                                          






                                                                                                                        
                            


               




                                        
 
        
             




                  
            


            
            
                       
version: "3"

services:
  caddy:
    image: caddy:2.6.2-alpine
    container_name: gateway
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
      - "443:443/udp"
    volumes:
      - ./etc/Caddyfile:/etc/caddy/Caddyfile
      - caddy_data:/data
      - blog_data:/var/www/neonxp.dev/public
    networks:
      - gateway

  forgejo_server:
    image: codeberg.org/forgejo/forgejo:1.20.5-0
    container_name: git
    env_file:
      - .env
    environment:
      - USER_UID=1001
      - USER_GID=1001
      - TZ=Europe/Moscow
      - USER=git
      - FORGEJO__database__DB_TYPE=postgres
      - FORGEJO__database__HOST=forgejo_db:5432
      - FORGEJO__database__NAME=${FORGEJO_DATABASE}
      - FORGEJO__database__USER=${FORGEJO_USERNAME}
      - FORGEJO__database__PASSWD=${FORGEJO_PASSWORD}
      - FORGEJO__server__DISABLE_SSH = false
      - FORGEJO__server__SSH_PORT = 22
      - FORGEJO__server__SSH_LISTEN_PORT = 22
    restart: always
    networks:
      - forgejo
      - gateway
    volumes:
      - /home/git/.ssh/:/data/git/.ssh
      - forgejo_data:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "127.0.0.1:2222:22"
    depends_on:
      - forgejo_db

  forgejo_db:
    image: postgres:13-alpine
    container_name: forgejo_db
    restart: always
    env_file:
      - .env
    environment:
      - USER_UID=1001
      - USER_GID=1001
      - TZ=Europe/Moscow
      - POSTGRES_DATABASE=${FORGEJO_DATABASE}
      - POSTGRES_USER=${FORGEJO_USERNAME}
      - POSTGRES_PASSWORD=${FORGEJO_PASSWORD}
    healthcheck:
      test: /usr/bin/pg_isready -U ${FORGEJO_USERNAME} -d ${FORGEJO_DATABASE}
      interval: 5s
      timeout: 10s
      retries: 120
    networks:
      - forgejo
    volumes:
      - forgejo_db_data:/var/lib/postgresql/data
      
  woodpecker_server:
    image: woodpeckerci/woodpecker-server:latest
    container_name: woodpecker_server
    volumes:
      - woodpecker_data:/var/lib/woodpecker/
    environment:
      - WOODPECKER_OPEN=true
      - WOODPECKER_GITEA=true
      - WOODPECKER_GITEA_URL=https://gitrepo.ru
      - WOODPECKER_GITEA_CLIENT=${FORGEJO_WOODPECKER_CLIENT}
      - WOODPECKER_GITEA_SECRET=${FORGEJO_WOODPECKER_SECRET}
      - WOODPECKER_HOST=https://ci.gitrepo.ru
      - WOODPECKER_ADMIN=neonxp
      - WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET}
    networks:
      - forgejo
      - gateway
    depends_on:
      - forgejo_server

  woodpecker_agent:
    image: woodpeckerci/woodpecker-agent:latest
    container_name: woodpecker_agent
    command: agent
    restart: always
    depends_on:
      - woodpecker_server
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - WOODPECKER_SERVER=woodpecker_server:9000
      - WOODPECKER_AGENT_SECRET=${WOODPECKER_AGENT_SECRET}
    networks:
      - forgejo

  goproxy_server:
    image: gitrepo.ru/neonxp/pkg:latest
    container_name: goproxy_server
    restart: unless-stopped
    volumes:
      - ./etc/pkg.json:/usr/app/config.json
    networks:
      - gateway

  opengist_server:
    image: ghcr.io/thomiceli/opengist:1
    container_name: opengist_server
    restart: unless-stopped
    volumes:
      - opengist_data:/root/.opengist
    environment:
      CONFIG: |
        log-level: info
        ssh.git-enabled: false
    networks:
      - gateway

  remark_server:
    image: umputun/remark42:latest
    container_name: remark_server
    hostname: "remark42"
    restart: always

    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "5"

    environment:
      - REMARK_URL=https://comments.neonxp.ru
      - SITE=neonxp_dev
      - SECRET=8Wwt1o6G5nVBMJot
      - DEBUG=false
      - AUTH_EMAIL_ENABLE=true
      - AUTH_TELEGRAM=true
      - AUTH_EMAIL_FROM=i@neonxp.dev
      - NOTIFY_EMAIL_FROM=i@neonxp.dev
      - AUTH_EMAIL_SUBJ=NeonXP.ru comments
      - NOTIFY_USERS=telegram,email
      - NOTIFY_ADMINS=telegram,email
      - NOTIFY_TELEGRAM_CHAN=760557
      - TELEGRAM_TOKEN=279146841:AAE9Yd2WMkFCadnk2hNtF3By1_gAhbO3usM
      - SMTP_HOST=smtp.mail.ru
      - SMTP_PORT=465
      - SMTP_USERNAME=i@neonxp.dev
      - SMTP_PASSWORD=m317T2KuCgXdxfKh5BjK
      - SMTP_LOGIN_AUTH=true
      - SMTP_TLS=true
      - EMOJI=true
      - ALLOWED_HOSTS=neonxp.dev,neonxp.ru
      - AUTH_SAME_SITE=none
      - ADMIN_SHARED_ID=email_0298a691a8d2e6e6e539bccdff2e30eca6df0280,telegram_b4201451070ba78a1742cd54d4223eccc0249c1a
      # Enable it only for the initial comment import or for manual backups.
      # Do not leave the server running with the ADMIN_PASSWD set if you don't have an intention
      # to keep creating backups manually!
      # - ADMIN_PASSWD=<your secret password>
    volumes:
      - remark_data:/srv/var
    networks:
      - gateway

  blog:
    image: gitrepo.ru/neonxp/blog:latest
    command: ["hugo", "-v"]
    volumes:
      - blog_data:/app/public

volumes:
  caddy_data:
  opengist_data:
  remark_data:
  forgejo_data:
  forgejo_db_data:
  woodpecker_data:
  blog_data:

networks:
    gateway:
    forgejo:
        external: false