Dokploy

Misaka Danmu Server

A self-hosted danmaku (bullet comments) server for live streaming and video platforms.

Misaka Danmu Server logo

Configuration

version: "3.8"
services:
  postgres:
    image: postgres:18
    restart: unless-stopped
    environment:
      - POSTGRES_PASSWORD
      - POSTGRES_USER
      - POSTGRES_DB
      - TZ=Asia/Shanghai
    volumes:
      - postgres-data:/var/lib/postgresql
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U danmuapi -d danmuapi"]
      interval: 10s
      timeout: 5s
      retries: 10
      start_period: 60s

  danmu-app:
    image: l429609201/misaka_danmu_server:latest
    restart: unless-stopped
    depends_on:
      postgres:
        condition: service_healthy
    environment:
      - PUID=1000
      - PGID=1000
      - UMASK=0022
      - TZ=Asia/Shanghai
      - DANMUAPI_DATABASE__TYPE
      - DANMUAPI_DATABASE__HOST
      - DANMUAPI_DATABASE__PORT
      - DANMUAPI_DATABASE__NAME
      - DANMUAPI_DATABASE__USER
      - DANMUAPI_DATABASE__PASSWORD
      - DANMUAPI_ADMIN__INITIAL_USER
    volumes:
      - danmu-config:/app/config

volumes:
  postgres-data: {}
  danmu-config: {}
[variables]
main_domain = "${domain}"
db_password = "${password:24}"
db_user = "danmuapi"
db_name = "danmuapi"

[config]
mounts = []

[[config.domains]]
serviceName = "danmu-app"
port = 7768
host = "${main_domain}"

[config.env]
# PostgreSQL
POSTGRES_PASSWORD = "${db_password}"
POSTGRES_USER = "${db_user}"
POSTGRES_DB = "${db_name}"

# Danmu App Database Connection
DANMUAPI_DATABASE__TYPE = "postgresql"
DANMUAPI_DATABASE__HOST = "postgres"
DANMUAPI_DATABASE__PORT = "5432"
DANMUAPI_DATABASE__NAME = "${db_name}"
DANMUAPI_DATABASE__USER = "${db_user}"
DANMUAPI_DATABASE__PASSWORD = "${db_password}"

# Admin
DANMUAPI_ADMIN__INITIAL_USER = "admin"

Base64

To import this template in Dokploy: create a Compose service → AdvancedBase64 import and paste the content below:

ewogICJjb21wb3NlIjogInZlcnNpb246IFwiMy44XCJcbnNlcnZpY2VzOlxuICBwb3N0Z3JlczpcbiAgICBpbWFnZTogcG9zdGdyZXM6MThcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxuICAgIGVudmlyb25tZW50OlxuICAgICAgLSBQT1NUR1JFU19QQVNTV09SRFxuICAgICAgLSBQT1NUR1JFU19VU0VSXG4gICAgICAtIFBPU1RHUkVTX0RCXG4gICAgICAtIFRaPUFzaWEvU2hhbmdoYWlcbiAgICB2b2x1bWVzOlxuICAgICAgLSBwb3N0Z3Jlcy1kYXRhOi92YXIvbGliL3Bvc3RncmVzcWxcbiAgICBoZWFsdGhjaGVjazpcbiAgICAgIHRlc3Q6IFtcIkNNRC1TSEVMTFwiLCBcInBnX2lzcmVhZHkgLVUgZGFubXVhcGkgLWQgZGFubXVhcGlcIl1cbiAgICAgIGludGVydmFsOiAxMHNcbiAgICAgIHRpbWVvdXQ6IDVzXG4gICAgICByZXRyaWVzOiAxMFxuICAgICAgc3RhcnRfcGVyaW9kOiA2MHNcblxuICBkYW5tdS1hcHA6XG4gICAgaW1hZ2U6IGw0Mjk2MDkyMDEvbWlzYWthX2Rhbm11X3NlcnZlcjpsYXRlc3RcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxuICAgIGRlcGVuZHNfb246XG4gICAgICBwb3N0Z3JlczpcbiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHlcbiAgICBlbnZpcm9ubWVudDpcbiAgICAgIC0gUFVJRD0xMDAwXG4gICAgICAtIFBHSUQ9MTAwMFxuICAgICAgLSBVTUFTSz0wMDIyXG4gICAgICAtIFRaPUFzaWEvU2hhbmdoYWlcbiAgICAgIC0gREFOTVVBUElfREFUQUJBU0VfX1RZUEVcbiAgICAgIC0gREFOTVVBUElfREFUQUJBU0VfX0hPU1RcbiAgICAgIC0gREFOTVVBUElfREFUQUJBU0VfX1BPUlRcbiAgICAgIC0gREFOTVVBUElfREFUQUJBU0VfX05BTUVcbiAgICAgIC0gREFOTVVBUElfREFUQUJBU0VfX1VTRVJcbiAgICAgIC0gREFOTVVBUElfREFUQUJBU0VfX1BBU1NXT1JEXG4gICAgICAtIERBTk1VQVBJX0FETUlOX19JTklUSUFMX1VTRVJcbiAgICB2b2x1bWVzOlxuICAgICAgLSBkYW5tdS1jb25maWc6L2FwcC9jb25maWdcblxudm9sdW1lczpcbiAgcG9zdGdyZXMtZGF0YToge31cbiAgZGFubXUtY29uZmlnOiB7fVxuIiwKICAiY29uZmlnIjogIlt2YXJpYWJsZXNdXG5tYWluX2RvbWFpbiA9IFwiJHtkb21haW59XCJcbmRiX3Bhc3N3b3JkID0gXCIke3Bhc3N3b3JkOjI0fVwiXG5kYl91c2VyID0gXCJkYW5tdWFwaVwiXG5kYl9uYW1lID0gXCJkYW5tdWFwaVwiXG5cbltjb25maWddXG5tb3VudHMgPSBbXVxuXG5bW2NvbmZpZy5kb21haW5zXV1cbnNlcnZpY2VOYW1lID0gXCJkYW5tdS1hcHBcIlxucG9ydCA9IDc3Njhcbmhvc3QgPSBcIiR7bWFpbl9kb21haW59XCJcblxuW2NvbmZpZy5lbnZdXG4jIFBvc3RncmVTUUxcblBPU1RHUkVTX1BBU1NXT1JEID0gXCIke2RiX3Bhc3N3b3JkfVwiXG5QT1NUR1JFU19VU0VSID0gXCIke2RiX3VzZXJ9XCJcblBPU1RHUkVTX0RCID0gXCIke2RiX25hbWV9XCJcblxuIyBEYW5tdSBBcHAgRGF0YWJhc2UgQ29ubmVjdGlvblxuREFOTVVBUElfREFUQUJBU0VfX1RZUEUgPSBcInBvc3RncmVzcWxcIlxuREFOTVVBUElfREFUQUJBU0VfX0hPU1QgPSBcInBvc3RncmVzXCJcbkRBTk1VQVBJX0RBVEFCQVNFX19QT1JUID0gXCI1NDMyXCJcbkRBTk1VQVBJX0RBVEFCQVNFX19OQU1FID0gXCIke2RiX25hbWV9XCJcbkRBTk1VQVBJX0RBVEFCQVNFX19VU0VSID0gXCIke2RiX3VzZXJ9XCJcbkRBTk1VQVBJX0RBVEFCQVNFX19QQVNTV09SRCA9IFwiJHtkYl9wYXNzd29yZH1cIlxuXG4jIEFkbWluXG5EQU5NVUFQSV9BRE1JTl9fSU5JVElBTF9VU0VSID0gXCJhZG1pblwiXG4iCn0=

Tags

streaming, danmaku, live


Version: latest

On this page