services: nefarious: image: ghcr.io/evilnet/nefarious2:latest container_name: nefarious restart: unless-stopped ports: - "6667:6667" # IRC (plaintext) - "6697:6697" # IRC (SSL) - "7000:7000" # IRC (plaintext) - "4497:4497" # Server link (SSL) - "9998:9998" # Services link (SSL) environment: IRCD_GENERAL_NAME: irc.example.com IRCD_GENERAL_DESCRIPTION: "My IRC Server" IRCD_GENERAL_NUMERIC: 1 IRCD_ADMIN_LOCATION: "New York, USA" IRCD_ADMIN_CONTACT: "admin@example.com" volumes: # Persist SSL certificate - ./ircd.pem:/home/nefarious/ircd/ircd.pem # Custom configuration (optional) - ./local.conf:/home/nefarious/ircd/local.conf # Linesync Sidecar - Git-based configuration sync # Uncomment to enable automatic config updates from a git repository # # Setup steps: # 1. docker compose run --rm linesync keygen # 2. Add the public key to your git repo's deploy keys # 3. docker compose run --rm -e GIT_REPOSITORY=git@github.com:yourorg/linesync-data.git linesync setup # 4. docker compose up -d # # linesync: # image: ghcr.io/evilnet/nefarious2-linesync:latest # # Or build locally: # # build: ./tools/linesync # container_name: linesync # restart: unless-stopped # depends_on: # - nefarious # volumes: # # SSH keys directory # - ./linesync-ssh:/home/linesync/.ssh # # Config file - same bind mount as nefarious # - ./local.conf:/home/linesync/ircd/local.conf # # Linesync git repo directory (created by setup) # - ./linesync:/home/linesync/ircd/linesync # # Docker socket for sending SIGHUP to nefarious # - /var/run/docker.sock:/var/run/docker.sock # environment: # NEFARIOUS_CONTAINER: nefarious # SYNC_INTERVAL: 300 # IRCD_CONF: /home/linesync/ircd/local.conf # # Optional: sync SSL certs from git tag # # CERT_TAG: myserver-cert