FediSuite --- Docker Image Source Code Repository --- This repository is for developing the main web application and bug hunting --- FediSuite is a free, open source platform for scheduling posts, splitting long posts into threads, managing notifications, and handling multiple accounts across 20+ Fediverse platforms — Mastodon, Pixelfed, Vernissage, PeerTube, Misskey, and more. https://www.fedisuite.com
  • JavaScript 57.1%
  • TypeScript 41.8%
  • CSS 0.7%
  • Shell 0.4%
Find a file
Christin Löhner da8c9a364d
All checks were successful
Release / verify-release (push) Successful in 10s
Release / build-and-release (push) Successful in 9m54s
Release / deploy (push) Successful in 1m54s
CI / check (push) Successful in 15m33s
CI / image (push) Successful in 53s
Merge branch 'christin'
2026-10-10 21:12:15 +02:00
.forgejo/workflows fix: provide encryption key to CI database smoke test 2026-10-03 19:41:36 +02:00
docs removed dublicate 2026-10-10 20:27:52 +02:00
logo initial files moved from github to codeberg 2026-05-09 06:56:13 +02:00
plugins initial files moved from github to codeberg 2026-05-09 06:56:13 +02:00
public docs: drop empty and trivial JSDoc tags and add a quality check against them 2026-10-07 16:39:33 +02:00
scripts docs: drop empty and trivial JSDoc tags and add a quality check against them 2026-10-07 16:39:33 +02:00
server feat(analytics): add federation tab showing the instances behind interactions 2026-10-10 20:48:38 +02:00
src feat(analytics): add colour legend to the instance list of the federation tab 2026-10-10 20:51:14 +02:00
.dockerignore feat(load-lab): add a fake fediverse, seeder, scenario runner and isolated VM setup 2026-09-30 15:13:48 +02:00
.editorconfig feat(quality): add ESLint, Prettier and TypeScript checks, fix findings 2026-09-28 08:42:55 +02:00
.gitignore ci: expand development branch quality checks 2026-09-28 11:27:09 +02:00
.jscpd.json ci: expand development branch quality checks 2026-09-28 11:27:09 +02:00
.prettierignore test(providers): record the complete output of the provider helpers in a golden file 2026-09-29 12:34:35 +02:00
.prettierrc.json feat(quality): add ESLint, Prettier and TypeScript checks, fix findings 2026-09-28 08:42:55 +02:00
AGENTS.md docs: drop empty and trivial JSDoc tags and add a quality check against them 2026-10-07 16:39:33 +02:00
AI-USAGE.md docs: update repository links and contributor workflow from Codeberg to Forgejo 2026-07-18 07:47:14 +02:00
build-images.sh initial files moved from github to codeberg 2026-05-09 06:56:13 +02:00
CHANGELOG.md version bump to 2.1.0 2026-10-10 20:57:11 +02:00
CREDITS.de.md added spanish translations and credits 2026-09-30 09:22:30 +02:00
CREDITS.md added spanish translations and credits 2026-09-30 09:22:30 +02:00
docker-compose.build.yml fix for migrations overlap with worker start 2026-09-29 16:56:44 +02:00
Dockerfile fix: protect credentials and close remaining auth gaps 2026-10-03 19:35:15 +02:00
eslint.config.js docs: cut source comments to the ones that matter and shorten file headers 2026-10-06 20:40:34 +02:00
eslint.quality.config.js docs: cut source comments to the ones that matter and shorten file headers 2026-10-06 20:40:34 +02:00
index.html feat(pwa): add web app manifest + icons for OS install support 2026-07-21 18:04:53 +02:00
LICENSE initial files moved from github to codeberg 2026-05-09 06:56:13 +02:00
package-lock.json version bump to 2.1.0 2026-10-10 20:57:11 +02:00
package.json version bump to 2.1.0 2026-10-10 20:57:11 +02:00
postcss.config.cjs quality fixes 2026-10-06 20:18:31 +02:00
README.de.md docs: point .env.example references to the self-hosting repository 2026-10-10 20:23:54 +02:00
README.md docs: point .env.example references to the self-hosting repository 2026-10-10 20:23:54 +02:00
renovate.json ci(release): gate releases on main, green CI and a plain version tag 2026-09-29 07:12:45 +02:00
tsconfig.json feat(quality): add ESLint, Prettier and TypeScript checks, fix findings 2026-09-28 08:42:55 +02:00
tsconfig.node.json fix: protect credentials and close remaining auth gaps 2026-10-03 19:35:15 +02:00
tsconfig.server-tests.json test: remove redundant tests and merge the rest into shorter tables 2026-10-06 21:09:35 +02:00
tsconfig.server.json feat(quality): add ESLint, Prettier and TypeScript checks, fix findings 2026-09-28 08:42:55 +02:00
version version bump to 2.1.0 2026-10-10 20:57:11 +02:00
vite.config.ts docs: cut source comments to the ones that matter and shorten file headers 2026-10-06 20:40:34 +02:00
vitest.config.ts test: provide default JWT_SECRET and drop hardcoded app URL in tests 2026-10-09 21:52:13 +02:00
vitest.global-setup.ts docs: vary JSDoc wording, drop name-echo param texts and vary test titles 2026-10-07 16:18:16 +02:00
vitest.setup.ts docs: drop empty and trivial JSDoc tags and add a quality check against them 2026-10-07 16:39:33 +02:00

FediSuite Docker Image Build Repository

License: GPL v3 Docker Image Version Docker Image Size Docker Pulls Last Commit Liberapay receiving Liberapay patrons

The Docker Hub image is the canonical published release artifact for this repository.

This repository contains the full FediSuite application source code and everything required to build and publish Docker images.

Project website: https://www.fedisuite.com

It is the canonical source/build repository for the project.

What Users Should Use

FediSuite currently has several important public URLs with different purposes.

In short:

  • If you want to learn about FediSuite, start at the website.
  • If you want to self-host FediSuite, use the FediSuite repository with the deployment files.
  • If you want to install or ship optional plugins separately from the app, use the FediSuite-Plugins repository.
  • If you want to report bugs or work on the application itself, use this repository.
  • If you want the ready-to-run container image, use Docker Hub.

ATTENTION

We’re using a slightly special versioning philosophy:

We use a 3-part version format, like: 1.20.13

  • The first number is the major version and represents really big changes.
  • The second number is for new features and important bug fixes.
  • The third number represents bleeding-edge versions.

The last number gets bumped for test releases. Once all tests are successful, the second number is increased, which basically means it is a production release.

So keep this in mind: for a production setup, you should only update when the second number changes.

Bug Reporting and Contribution

If you find a bug or if you want to contribute, please either file a bug report or read the docs/CONTRIBUTING.md here:

https://forge.chrislo.de/FediSuite/FediSuite-Docker-Image

Translating FediSuite

FediSuite is available in German, English, Italian, French and Spanish, and anyone can translate it or add a language. Translations are done in the browser at weblate.fedisuite.com, no Git or Forgejo account needed. Weblate sends the changes to this repository as a pull request. French was not done by native speakers, so proofreading it is especially welcome.

Details: docs/TRANSLATING.md and www.fedisuite.com/dokumentation/uebersetzen

Plugin Development

If you want to create a new FediSuite plugin, start with:

npm run plugins:create -- --help

Authoring guides:

What This Repo Is For

Use this repository when you want to:

  • develop the application
  • change frontend or backend code
  • run source-based local tests
  • build Docker images
  • publish images to Docker Hub / GHCR

Self-hosters should use the separate deployment repository instead of this one:

Included

  • full frontend source in src/
  • full backend source in server/
  • static assets in public/ and logo/
  • Dockerfile
  • package.json / package-lock.json
  • CI workflows for Docker publishing
  • docker-compose.build.yml for local source-based validation
  • project docs such as docs/CONTRIBUTING.md, docs/SECURITY.md, AGENTS.md

Local Development / Validation

For source-based local validation:

# .env.example lives in the FediSuite-Self-Hosting repository
curl -fsSL https://forge.chrislo.de/FediSuite/FediSuite-Self-Hosting/raw/branch/main/.env.example -o .env
docker compose -f docker-compose.build.yml up -d --build

For direct frontend build verification:

npm ci
npm run build

For real image-build verification:

docker build -t fedisuite-build-repo-test .

Environment Variables

The .env.example template lives in the FediSuite-Self-Hosting repository, together with CONFIGURATION.md. This repo does not contain a copy. You can use it for:

  • local source validation
  • image build verification
  • optional frontend branding at build time

Notable groups:

  • runtime/backend variables such as DATABASE_URL, JWT_SECRET, APP_URL
  • worker/background flags such as ENABLE_SCHEDULER, ENABLE_POSTS_REFRESH
  • feature switches ENABLE_DRAFTS, ENABLE_CONTENT_CALENDAR, ENABLE_CONTENT_LABELS, ENABLE_CONTENT_RECYCLING, ENABLE_CONTENT_INTELLIGENCE and ENABLE_COMMUNITY_INTELLIGENCE (all on by default; set one to false to hide drafts, the content calendar, the labels and campaigns, the reuse of archive posts, the content analysis and the insights in the composer, or the community analysis, which then also stops recording who interacted with your posts)
  • optional frontend build-time branding variables such as VITE_APP_NAME

Docker Publish

The CI workflow under .forgejo/workflows/release.yml publishes multi-arch images to Docker Hub whenever a vX.Y.Z tag is pushed. It runs the same build-images.sh script you'd run manually, so the resulting tags are identical either way.

Required repo secrets (Settings > Actions > Secrets):

  • DOCKERHUB_USERNAME
  • DOCKERHUB_TOKEN

Typical release flow:

  1. bump the version file and add a CHANGELOG.md entry
  2. commit, then tag the commit vX.Y.Z and push both
  3. the CI workflow builds and publishes the images, and creates a Forgejo release with the changelog excerpt and a link to Docker Hub
  4. update the deployment repository to use the desired image tag if needed

Relationship To The Deployment Repo

The separate deployment repo should only pull published images built from this repository.

That means:

  • this repo contains source code and image-build logic
  • the other repo contains compose/env/docs only

Do not collapse the two concerns again unless that separation is intentionally being redesigned.

Important Project Constraints

  • keep timestamps stored in UTC
  • keep server/init-db.js idempotent
  • do not reintroduce proprietary support widgets or private infrastructure assumptions
  • keep the Dockerfile builder and runtime stages aligned
  • do not assume self-hosters will compile the app locally

License

FediSuite is licensed under the GNU GPL v3.0.