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

