forked from symys/symysynapstnix
Fork of https://github.com/MaxwellDPS/synapstnix
Goal is to make a config that is a drop in enable a few things to have community platforms on a provisioned device.
The goal is to design this configuration to be able deployed in 1 of 2 ways.
1. instance on an existing capsul server
2. trash hardware that was acquired
The following services are goals:
matrix
mastodon
pixelfed
forgejo
flohmarkt
nextcloud
headscale/netbird/pangolin
capsul
immich
peertube
lemmy
jitsi
etherpad
vikunja
searx
something event planning
something for surveys
something sso
something wiki
something email
something dns
analytics dashboard
| .github | ||
| modules | ||
| .envrc | ||
| .gitignore | ||
| buildQemuVM.sh | ||
| flake.lock | ||
| flake.nix | ||
| LICENSE | ||
| README.md | ||
Fork of: https://github.com/MaxwellDPS/synapstnix
Collettivita - Community Platforms NixOS Configuration
A NixOS flake configuration designed to enable community platforms on provisioned devices. This project aims to create a drop-in configuration that can be deployed in flexible ways to support community infrastructure.
Deployment Options
- Existing Capsul Server - Instance deployment on an existing capsul server
- Hardware Acquisition - Deploy on repurposed or donated hardware
Services
User-Facing Platforms
| Service | Description | Status |
|---|---|---|
| Matrix + Element | Decentralized messaging and web client | ✅ Implemented |
| Mastodon | Federated social network | Planned |
| Pixelfed | Image sharing platform | Planned |
| Forgejo | Self-hosted Git service | Planned |
| Nextcloud | File synchronization and sharing | Planned |
| PeerTube | Video platform | Planned |
| Lemmy | Community discussion aggregator | Planned |
| Immich | Photo management | Planned |
| Jitsi | Video conferencing | Planned |
| Etherpad | Real-time document editing | Planned |
| Vikunja | To-do list and project management | Planned |
| Searx | Metasearch engine | Planned |
| Flohmarkt | Marketplace | Planned |
| Mobilizon | Event planning and group management | Planned |
| Jellyfin | Media streaming | Planned |
| WriteFreely | Federated blogging platform | Planned |
| Funkwhale | Federated music/podcast sharing | Planned |
| Castopod | Podcast hosting with ActivityPub | Planned |
| Listmonk | Newsletter and mailing lists | Planned |
| Vaultwarden | Password management | Planned |
| LibreTranslate | Self-hosted translation | Planned |
| Uptime Kuma | Public status page | Planned |
| Plausible | Privacy-friendly web analytics | Planned |
| Paperless-ngx | Document management and archival | Planned |
| ntfy | Self-hosted push notifications | Planned |
| FreshRSS | RSS feed reader | Planned |
| Wallabag | Read-it-later/bookmarking | Planned |
| BTCPay Server | Payment processing | Planned |
| Woodpecker CI | CI/CD for Forgejo | Planned |
| Event Planning | TBD | TODO: find solution |
| Surveys | TBD | TODO: find solution |
| Wiki | TBD | TODO: find solution |
| Voting | TBD | TODO: find solution |
| Financial Management | TBD | TODO: find solution |
Infrastructure Services
| Service | Description | Status |
|---|---|---|
| Nginx | Reverse proxy with rate limiting | ✅ Implemented |
| PostgreSQL | Database | ✅ Implemented |
| Redis | Caching and session storage | ✅ Implemented |
| Authelia | Single Sign-On / OIDC | ✅ Implemented |
| Prometheus + Grafana | Monitoring and dashboards | ✅ Implemented |
| Fail2ban | Brute force protection | ✅ Implemented |
| Coturn | TURN/STUN server for VoIP | ✅ Implemented |
| Cloudflared | Tunnel for NAT traversal (optional) | ✅ Implemented |
| Headscale / Netbird / Pangolin | VPN/Network solutions | Planned |
| Capsul | Lightweight container service | Planned |
| MinIO | S3-compatible object storage | Planned |
| Loki | Log aggregation (pairs with Grafana) | Planned |
| i2p node | anonymous censorship resistant network | Planned |
| tor introducer | anonymous censorship resistant network | Planned |
| TBD | TODO: find solution | |
| DNS | TBD | TODO: find solution |
| Backup | TBD | TODO: find solution |
Getting Started
- Prerequisites: Install NixOS and enable flakes on the target host
- Configuration: Clone this repository and customize the configuration for your deployment
- Deployment: Use
nixos-rebuild switchwith the appropriate flake output for your deployment scenario
Quick Start
# Clone the repository
git clone <repository-url>
cd collettivita
# Deploy to existing system
nixos-rebuild switch --flake .#
# Or, check configuration without applying
nixos-rebuild dry-run --flake .#
Configuration
Edit the configuration files to enable/disable services based on your needs and available resources.
License
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).