Trusted Servants Pro
Content management for recovery fellowships

Your fellowship's web presence, supercharged.

Meeting schedules, a literature library, events, stories, a blog, a drag-and-drop page builder, analytics, backups — public site and admin backend, run from a single app you control.

Fully interactive demo. Edit anything — your changes are private to your session and reset automatically when you leave.

localhost:8090/tspro · dashboard
The Trusted Servants Pro admin dashboard
20+built-in modules, all toggleable
Privacy firstYour data never leaves your server
Zerosubscription fees
Freeopen source & self-hosted
Two surfaces, one app

A polished public site, and the backend to run it.

Members get a fast, themeable website. Trusted servants get a friendly admin area with roles, audit logs, and backups.

Built with
The frontend

A website members actually want to use

Meeting schedules with live "happening now" badges, a browsable literature library, events, recovery stories, a blog, and a visual page builder — wrapped in a theme you control down to the design tokens.

  • Day/time schedule, in-person · online · hybrid, with one-click Zoom join
  • Drag-and-drop pages, light/dark mode, custom fonts & colors
  • Stories, blog, events & announcements, fellowships index

See the public site →

meridianrecovery.example
The public fellowship homepage
meridianrecovery.example/events
Public events page
The backend

An admin area built for volunteers

Three roles, an audit trail, a recycle bin, visitor analytics, scheduled off-site backups, and a one-screen restore. Powerful where it needs to be, gentle for the trusted servant doing it after their day job.

  • Admin · editor · viewer roles with per-module gating
  • Watchtower: visitor metrics, 404s, access requests, IP controls
  • Daily snapshots, end-to-end-encrypted off-site backups, full-portal export/restore

Open the admin (admin / admin) →

localhost:8090/tspro/watchtower
Watchtower analytics
A look inside

Control every aspect of your website.

Pages and design, meetings and schedules, visitor analytics and security — powerful where it needs to be, gentle for the volunteers who keep it running.

/tspro/frontend
Web Frontend admin
Web Frontend studioPages, branding, design tokens, navigation, footer, forms — a CMS for your whole public site.
/tspro/meetings
Meetings admin
Meetings & schedulesRecurring days/times, Zoom details, libraries, and public visibility per meeting.
meridianrecovery.example/meetings
Public meeting schedule
Public meeting scheduleDay/time grid with in-person, online & hybrid badges and one-click Zoom join.
meridianrecovery.example/library
Public literature library
Literature libraryCurated readings, scripts, and service docs — public on the site, managed in the admin.
Everything in the box

One app. Every tool your fellowship needs.

Each module is independently toggleable, so you ship exactly the site your fellowship wants — nothing more.

Meetings & schedules

Recurring day/time schedules across every time zone, in-person · online · hybrid, with Zoom details and live badges.

Literature libraries

Curated readings, scripts, and service docs — files, links, or pasted markdown, public or members-only.

Events & announcements

Post events with locations and Zoom links; announcements auto-archive when they expire.

Recovery stories

First-person stories with author bylines and milestone dates — a moderated, public submission flow included.

Blog

Long-form posts with categories and tags; one table can power many committee blogs.

Page builder

Drag-and-drop blocks — heroes, cards, galleries, containers — for any page, no code.

Design system

Themes, design tokens, custom fonts, light/dark mode, mega-menus, and footers you control.

Roles & permissions

Admin, editor, and viewer roles with fine-grained per-module access gating.

Watchtower analytics

Privacy-first visitor metrics, 404 tracking, access requests, and IP blocking.

Backups & restore

Daily snapshots and scheduled off-site backups — end-to-end encrypted to TS Pro Backup, or SFTP/FTP/Dropbox — with one-screen restore.

Zoom & tech hub

A built-in knowledge base of hosting checklists and security best practices.

Forms, contact & more

Custom forms, contact routing, a fellowships index, trusted-servant mailing list, and printable schedules.

Own your stack

Deploy it yourself in minutes.

No SaaS lock-in, no per-seat pricing — a single Flask app backed by SQLite. Use the turnkey installer for a production server with automatic HTTPS, auto-updates, and disk-housekeeping built in, or Docker Compose to run it on any machine.

Read the full documentation

Option A · production + HTTPS

One-command installer

The turnkey path for a public server: it installs Docker, writes a hardened Compose file, generates your secret key, and configures Caddy for automatic Let's Encrypt TLS — then keeps the image up to date and the disk tidy, so it runs unattended for months.

  1. Provision a server

    Spin up a fresh Ubuntu 24.04 LTS box on any provider (DigitalOcean, Hetzner, Lightsail, or bare metal). 1 vCPU / 1 GB RAM handles most fellowships. SSH in as root or a sudo user.

    $ ssh root@your-server-ip
  2. Point your domain at it

    For a real certificate, add a DNS A record for your hostname pointing to the server's public IP. On Cloudflare, set it to “DNS only” (grey cloud) during install so the TLS challenge can complete. No domain? Skip this and the installer issues a self-signed cert.

    # DNS A record
    portal.yourfellowship.org      203.0.113.10
  3. Run the installer

    One command does the rest. Pipe it straight from GitHub — or clone the repo first if you'd like to read the script before running it.

    $ curl -fsSL https://raw.githubusercontent.com/\
    viibeware/trusted-servants-pro/main/install.sh | sudo bash
  4. Answer two prompts

    Enter your domain (press Enter to skip for a self-signed cert) and a contact email for renewal notices. It then pulls the image and starts everything in 2–5 minutes. Prefer no prompts? Pass the answers inline instead.

    # interactive prompts
    Domain (blank = self-signed): portal.yourfellowship.org
    Contact email: [email protected]
    
    # …or fully non-interactive
    $ sudo TSP_DOMAIN=portal.yourfellowship.org \
           [email protected] \
           TSP_ADMIN_PASSWORD='a-strong-password' bash install.sh
  5. Sign in & secure it

    Open the URL the installer prints, sign in with the seeded admin, and change the password immediately from Settings → Users.

     https://portal.yourfellowship.org
       user: admin   ·   pass: admin   # change this now
Option B · any machine

Docker Compose

The quickest way to run it anywhere — a laptop, a homelab, or any VPS. One container, one SQLite file.

  1. Check Docker is installed

    You only need Docker Engine and the Compose plugin. Confirm both are available before you start.

    $ docker --version && docker compose version
  2. Create a compose file

    In an empty directory, drop a docker-compose.yml that pulls the published image.

    # docker-compose.yml
    services:
      tsp:
        image: viibeware/trusted-servants-pro:latest
        container_name: tspro
        ports:
          - "8090:8000"
        volumes:
          - ./data:/data
        environment:
          - TSP_SECRET_KEY=${TSP_SECRET_KEY:?TSP_SECRET_KEY must be set in .env}
        restart: unless-stopped
        # cap logs so they can't fill the disk over time
        logging:
          driver: json-file
          options: { max-size: "10m", max-file: "3" }
  3. Set a secret key

    Trusted Servants Pro signs session cookies with this. Generate a random value into a .env file.

    $ echo "TSP_SECRET_KEY=$(openssl rand -hex 32)" > .env
  4. Start it

    Pull the image and launch the container in the background on port 8090.

    $ docker compose up -d
  5. Open it

    Visit the public site and the admin backend, sign in, and change the admin password.

     http://localhost:8090         # public site
     http://localhost:8090/tspro   # admin (admin / admin)
See it for yourself

Take it for a spin.

Step into a live, fully-loaded fellowship portal. Edit freely — it resets itself.