selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

amusewiki logo

Self-host amusewiki

v_2.6112

Wiki engine with Git backend and EPUB/PDF publishing

ReleaseOpen SourceOther
Updated9 hours ago
LanguagePerl
Setup difficultyAdvanced
ThemeDark mode
Stars
221
Storage
5Gb recommended minimum free space
Requires
Fontconfig, Ghostscript, Git, Libexpat1-dev, Libxml2-dev, Nginx, OpenSSL, Perl with Carton, Shared-mime-info, TeX Live, Xapian, Zlib1g-dev
Docker
rojen/amusewiki
Install with Docker Compose
amusewiki screenshot 1amusewiki screenshot 2amusewiki screenshot 3amusewiki screenshot 4amusewiki screenshot 5amusewiki screenshot 6amusewiki screenshot 7amusewiki screenshot 8amusewiki screenshot 9amusewiki screenshot 10

What is amusewiki?

Amusewiki is a Perl-based wiki engine using Text::Amuse markup (compatible with Emacs Muse) with a Git backend for version control. It supports running multiple independent sites on one instance with flexible access modes (private, blog, moderated wiki, open wiki). Core features include high-quality EPUB and PDF output via LaTeX, a bookbuilder for compiling collections, an OPDS server for delivering content to mobile reading apps, offline editing via Git, full-text search via Xapian, and localization for over 20 languages. It can use PostgreSQL, MySQL/MariaDB, or SQLite as a database. Installation options include Debian/Ubuntu packages, Docker images, or manual installation from source with Carton. The application runs as an FCGI process behind nginx (or Apache/Caddy) and includes role-based access control with root, admin, librarian, human, and robot permissions.

Should you self-host amusewiki?

amusewiki scores 50/100 on selfhost.directory (how scoring works) and ranks #22 of 31 in Wikis. It has 221 GitHub stars.

It shipped 4 stable releases in the past year. The latest, v_2.609, came out on 27 November 2025.

Setup is advanced: plan for several services and some ongoing maintenance. An official Docker image is available. It is Other-licensed and written mostly in Perl.

Its closest alternative on selfhost.directory is outline (78/100, 41 093 stars). It scores higher overall, so compare the two before you pick. See amusewiki vs outline side by side.

Features

  • Bookbuilder
  • EPUB output
  • Full-Text Search
  • Let's Encrypt SSL integration
  • Multi-language Support
  • Multi-site Support
  • OPDS Server
  • PDF output via LaTeX
  • Role-based Access Control
  • Site access modes
  • Site customization via CSS/JS
  • Wiki engine with Text::Amuse markup

amusewiki README

How to install amusewiki

Install amusewiki with Docker Compose

Docker Compose
Environment variables
POST_DOMAIN, CHANGE_DOMAIN_BY_ID, CONTAINER_IS_BEHIND_HTTPS_TRAEFIK, AMW_WORKERS, AMW_NPROC, CHANGE_PASSWORD_BEFORE_RUN, AMW_USERNAME, AMW_PASSWORD, HOST_SSH_PUBLIC_KEY, GENERATE_NEW_SSH_KEY, NGX_PREFIX, AMUSEWIKI_SWITCH_BRANCH, CREATE_MISSING_STAGING_FILES, AMW_SQLITE_PATH, UPDATE_AMUSEWIKI, OTHER_VOLUMES_USED_IN_CONTAINER, EMAIL_SENDER_TRANSPORT, EMAIL_SENDER_TRANSPORT_ssl, EMAIL_SENDER_TRANSPORT_host, EMAIL_SENDER_TRANSPORT_port, EMAIL_SENDER_TRANSPORT_sasl_username, EMAIL_SENDER_TRANSPORT_sasl_password

services: app: image: rojen/amusewiki:package ports: - '80:80' - '443:443' environment: - POST_DOMAIN=localhost - CHANGE_PASSWORD_BEFORE_RUN=true - AMW_USERNAME=amusewiki - AMW_PASSWORD=changeme volumes: - repo:/var/lib/amusewiki/repo - thumb:/var/lib/amusewiki/thumbnails - staging:/var/lib/amusewiki/staging - db:/var/lib/dbconfig-common/sqlite3/amusewiki - web:/etc/nginx/sites-enabled volumes: repo: thumb: staging: db: web:

Uses SQLite by default; MySQL/PostgreSQL not currently supported in this Docker setup

How to configure amusewiki

  • AMUSEWIKI_SWITCH_BRANCHSwitch to given branch before run

    Switch to given branch before run

    values: texlive-minimal, texlive-base, texlive-full

  • AMW_NPROCNumber of perl-fcgi processes

    Number of perl-fcgi processes

  • AMW_PASSWORDchangemeSet initial password

    Set initial password

  • AMW_SQLITE_PATH/var/lib/dbconfig-common/sqlite3/amusewiki/amusewikiSQLite database path

    SQLite database path

  • AMW_USERNAMEamusewikiSet initial username

    Set initial username

  • AMW_WORKERS3Number of FCGI worker processes

    Number of FCGI worker processes

  • CHANGE_DOMAIN_BY_ID1Default is initial domain: 1

    Default is initial domain: 1

  • CHANGE_PASSWORD_BEFORE_RUNEnable password changing on first run

    Enable password changing on first run

    values: true/false

  • CONTAINER_IS_BEHIND_HTTPS_TRAEFIKEnable HTTPS Traefik support

    Enable HTTPS Traefik support

    values: true/false

  • CREATE_MISSING_STAGING_FILESCreate missing staging files

    Create missing staging files

    values: true/false

  • EMAIL_SENDER_TRANSPORTEmail transport type (SMTP)

    Email transport type (SMTP)

    values: SMTP

  • EMAIL_SENDER_TRANSPORT_hostSMTP host

    SMTP host

  • EMAIL_SENDER_TRANSPORT_portSMTP port

    SMTP port

  • EMAIL_SENDER_TRANSPORT_sasl_passwordSMTP SASL password

    SMTP SASL password

  • EMAIL_SENDER_TRANSPORT_sasl_usernameSMTP SASL username

    SMTP SASL username

  • EMAIL_SENDER_TRANSPORT_sslUse SSL for SMTP

    Use SSL for SMTP

    values: 1

  • GENERATE_NEW_SSH_KEYGenerate new SSH key

    Generate new SSH key

    values: true/false

  • HOST_SSH_PUBLIC_KEYAuthorize host SSH public key

    Authorize host SSH public key

  • NGX_PREFIXInstance name prefix (amusewikidebian or amusewiki)

    Instance name prefix (amusewikidebian or amusewiki)

  • OTHER_VOLUMES_USED_IN_CONTAINERCustom volume paths for backup/chown detection

    Custom volume paths for backup/chown detection

  • POST_DOMAINChange initial or selected domain

    Change initial or selected domain

  • UPDATE_AMUSEWIKIUpdate/pull amusewiki before start

    Update/pull amusewiki before start

    values: true/false

amusewiki releases & version history

More in Publishing

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…