A Mastodon-compatible app that saves all data on your Pod.
Built on the ActivityPods framework.
make start Starts the activitypods provider using a docker-compose file. This includes the activitypods backend and frontend server, the fuseki db, mailcatcher, redis, and arena.
make stop Stops and removes all containers for the activitypods provider.
make config Prints the config with the .env-file-provided environment variables filled.
make logs-activitypods Prints the activitypods provider logs.
make attach-activitypods Attaches to the moleculer repl of the activitypods backend.
make build-prod Builds the activitypods provider images for production. In addition to the dev images, this includes a traefik reverse proxy.
make start-prod Starts the activitypods provider containers for production.
make stop-prod Stops and removes running activitypods provider containers.
make config-prod Prints the config with the .env-file-provided environment variables filled.
make attach-backend-prod Attaches to the moleculer repl of the activitypods backend.
docker-compose.coolify.yml lets Coolify build and run the app straight from this repository (build pack Docker Compose). The backend reaches a Fuseki shared with other apps through the external coolify network, and each stack gets its own Redis. The variables to set in Coolify (SPARQL_ENDPOINT, JENA_PASSWORD, POD_PROVIDER_BASE_URL...) are listed at the top of the file. Set MAIN_DATASET and SETTINGS_DATASET to keep existing datasets (e.g. mastopod / settings-mastopod).
The frontend URLs are inlined by Vite at build time, so the domains must be set in Coolify before the first deployment.
This project is funded through the NGI0 Entrust Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet program, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 101069594. Learn more on the NLnet project page.
