Try describing what you need:

Neverkin logo

Neverkin

★ 21
GNU General Public License v3.0Open Source — No Paywall9 Containers — 9 containers — heavy hosting footprintDocker · Compose · SourceNo external DB2+ active committers (12mo)

About

Neverkin is a collaborative writing and worldbuilding application aimed at storytellers, Dungeon Masters, writers, and novelists. It combines note-taking and narrative planning features so users can...

Community Ratings

No ratings yet

Features

  • interactive mindmap
  • rich text editing
  • wiki pages
  • character pages
  • @mention relations
  • real-time collaboration
  • multi-track timelines
  • custom calendars

Details

Last Updated
Oct 28, 2026
Created
Oct 18, 2022
Install Methods
dockerdocker-composesource
Requirements
NodeDockerPostgreSQLRedisNginx
Authentication
local
Backup & Export
database-dumpfile-backup
Runtime / Stack
NodejsDocker
Privacy & Independence
No Cloud Required
User Model
Multi-User
Deployment

Deployment: Docker Compose ✓9 Containers — heavy hosting footprintRuns as 9 containers

Run Neverkin yourself

Pick how much you want to manage.

Is this your project? Sponsor a listing

Run Neverkin with Docker Compose

Compose file from the Neverkin project repository.

9 services

no resource limits declared

needs persistent storage (6 volumes)

docker-compose.prod.yml · @ 77746ad · scanned Oct 12, 2026

version: '3.8'
services:
    gatekeeper:
        image: tenebrie/timelines-gatekeeper:${VERSION}
        build:
            context: ./app/gatekeeper-proxy
            dockerfile: ./Dockerfile.prod
        ports:
            - target: 80
              published: 80
              mode: host
            - target: 443
              published: 443
              mode: host
        deploy:
            endpoint_mode: dnsrr
            replicas: 1
            placement:
                constraints:
                    - node.role == manager
            update_config:
                order: stop-first
                parallelism: 1
                delay: 10s
                failure_action: pause
        secrets:
            - environment
        volumes:
            - /mnt/volume_secrets/certs:/etc/letsencrypt:cached
        logging:
            driver: json-file
            options:
                max-size: '50m'
                max-file: '10'
    styx:
        image: tenebrie/timelines-styx:${VERSION}
        build:
            context: ./
            dockerfile: ./app/styx-frontend/Dockerfile.prod
            args:
                VERSION: ${VERSION}
                ASSET_STORE_URL: ${ASSET_STORE_URL:-}
        deploy:
            replicas: 2
            update_config:
                order: start-first
                parallelism: 2
                delay: 10s
                failure_action: pause
        secrets:
            - environment
        healthcheck:
            test: ["CMD", "wget", "-q", "--spider", "http://localhost:8080/health"]
            interval: 15s
            timeout: 30s
            retries: 3
            start_period: 30s
    rhea:
        image: tenebrie/timelines-rhea:${VERSION}
        build:
            context: ./
            dockerfile: ./app/rhea-backend/Dockerfile.prod
        environment:
            NODE_ENV: production # Prod or staging
            DATABASE_URL: postgresql://docker:docker@rhea-postgres:5432/db?schema=public
        command: node dist/src/index.js
        stop_grace_period: 30s
        deploy:
            replicas: 2
            update_config:
                order: start-first
                parallelism: 1
                delay: 10s
                failure_action: pause
        volumes:
            - /mnt/volume_rhea_postgres:/mnt/volume_rhea_postgres:ro
        secrets:
            - jwt-secret
            - environment
            - s3-bucket-id
            - s3-endpoint
            - s3-access-key-id
            - s3-access-key-secret
            - webhook-contact-form-url
            - imagen-google-api-key
    calliope:
        image: tenebrie/timelines-calliope:${VERSION}
        build:
            context: ./
            dockerfile: ./app/calliope-websockets/Dockerfile.prod
        environment:
            NODE_ENV: production # Prod or staging
        command: node dist/index.js
        stop_grace_period: 30s
        deploy:
            replicas: 2
            update_config:
                order: start-first
                parallelism: 1
                delay: 10s
                failure_action: pause
        secrets:
            - jwt-secret
            - environment
        healthcheck:
            test: ["CMD", "wget", "-q", "--spider", "http://localhost:3001/calliope/health"]
            interval: 15s
            timeout: 30s
            retries: 3
            start_period: 30s
    orpheus:
        image: tenebrie/timelines-orpheus:${VERSION}
        build:
            context: ./
            dockerfile: ./app/orpheus-mcp/Dockerfile.prod
        environment:
            NODE_ENV: production # Prod or staging
            REQUIRE_OAUTH: "true"
        command: npm run prod
        deploy:
            replicas: 1
            update_config:
                order: start-first
                parallelism: 1
                delay: 10s
                failure_action: pause
        secrets:
            - jwt-secret
            - environment
        healthcheck:
            test: ["CMD", "wget", "-q", "--spider", "http://localhost:3002/orpheus/health"]
            interval: 30s
            timeout: 30s
            retries: 3
            start_period: 60s
    thetis:
        image: tenebrie/timelines-thetis:${VERSION}
        build:
            context: ./
            dockerfile: ./app/thetis-landing/Dockerfile.prod
        deploy:
            replicas: 1
            update_config:
                order: start-first
                parallelism: 1
                delay: 10s
                failure_action: pause
        healthcheck:
            test: ["CMD", "wget", "-q", "--spider", "http://localhost:8081/health"]
            interval: 15s
            timeout: 30s
            retries: 3
            start_period: 30s
    rhea-postgres:
        deploy:
            placement:
                constraints:
                    - node.role == manager
        volumes:
            - /mnt/volume_rhea_postgres/data:/var/lib/postgresql/data/:cached

    redis:
        deploy:
            placement:
                constraints:
                    - node.role == manager

    chronos:
        image: tenebrie/timelines-chronos:${VERSION}
        build:
            context: ./app/chronos-backups
            dockerfile: ./Dockerfile
        environment:
            BACKREST_DATA: /data
            BACKREST_CONFIG: /config/config.json
            XDG_CACHE_HOME: /cache
        deploy:
            replicas: 1
            placement:
                constraints:
                    - node.role == manager
            update_config:
                order: stop-first
                parallelism: 1
                delay: 10s
                failure_action: pause
        secrets:
            - s3-bucket-id
            - s3-endpoint
            - s3-access-key-id
            - s3-access-key-secret
        volumes:
            - /mnt/volume_rhea_postgres/backrest/data:/data:cached
            - /mnt/volume_rhea_postgres/backrest/config:/config:cached
            - /mnt/volume_rhea_postgres/backrest/cache:/cache:cached
        depends_on:
            - rhea-postgres
        healthcheck:
            test: ["CMD", "wget", "-q", "--spider", "http://localhost:9898"]
            interval: 15s
            timeout: 30s
            retries: 3
            start_period: 30s

secrets:
    jwt-secret:
        external: true
    environment:
        external: true
    s3-bucket-id:
        external: true
    s3-endpoint:
        external: true
    s3-access-key-id:
        external: true
    s3-access-key-secret:
        external: true
    webhook-contact-form-url:
        external: true
    imagen-google-api-key:
        external: true

This file may be out of date. Check the Neverkin documentation for current setup steps.

Track your self-hosted stack

Bookmark software to try, rate tools you've used, and keep your collection in one place.

Metadata extracted from README on Sep 16, 2026

Related Software

Docs logo

Docs

17.0k
An open-source collaborative text editor for teams to write, organize, and share knowledge in real time.
Note Taking AppsKnowledge ManagementPermissive License+3
Details
TiddlyWiki logo

TiddlyWiki

8.7k
TiddlyWiki is a non-linear personal web notebook and interactive wiki that can run as a single HTML file in the browser or as a Node.js application.
WikisNote Taking AppsKnowledge Management+2
Details
AppFlowy logo

AppFlowy

78.0k
AppFlowy is an open-source AI workspace and Notion alternative for notes, databases, collaboration, and building custom productivity apps.
Task ManagementCopyleft LicenseNote Taking Apps+4
Single ContainerFOSS with Issues
Details
Etherpad logo

Etherpad

18.6k
Etherpad is a real-time collaborative web editor for creating and editing shared pads.
Office SuitesPermissive LicenseDocument Management+2
Details
Digipad logo

Digipad

7
An online self-hosted application for creating collaborative digital notepads (Documentation in french).
Groupware SuitesNote Taking AppsKnowledge Management+2
Details
HedgeDoc logo

HedgeDoc

7.5k
HedgeDoc lets users create real-time collaborative markdown notes.
Note Taking AppsCopyleft LicenseKnowledge Management+2
4 Containers
Details
memEx logo

memEx

2
Structured personal knowledge base, inspired by zettlekasten and org-mode.
Knowledge ManagementCopyleft LicenseNote Taking Apps+2
Details
Many Notes logo

Many Notes

1.1k
Many Notes is a Markdown note-taking web application for creating, importing, organizing, and sharing vault-based notes.
Note Taking AppsPermissive LicenseWikis+2
Details
Feather Wiki logo

Feather Wiki

96
A lightning fast and infinitely extensible tool for creating personal non-linear notebooks, databases, and wikis that is entirely self-contained, runs in your browser, and is only 58 kilobytes in size.
WikisCopyleft LicenseNote Taking Apps+3
Fully FOSS
Details
Outline logo

Outline

41.1k
Outline is a fast, collaborative knowledge base for teams built with React and Node.js.
WikisKnowledge ManagementDocument Management+3
2 ContainersSource AvailableFOSS with Issues
Details
Collabst logo

Collabst

422
Self-hosted collaborative workspace for Typst.
Note Taking AppsDocument ManagementKnowledge Management+1
4 Containers
Details
Logseq logo

Logseq

45.4k
Logseq is an open-source knowledge management and collaboration platform for notes, tasks, PDF annotation, and organizing information.
Knowledge ManagementNote Taking AppsTask Management+1
Fully FOSS
Details