Overview
Discover what makes Smederee powerful
Smederee is a self‑hosted, web‑based project management platform that unifies **code hosting**, **issue tracking**, and **code review** around the lightweight *darcs* version control system. Designed with privacy in mind, it guarantees that user data never leaves the host environment, complying fully with EU GDPR and avoiding third‑party analytics. From a developer’s standpoint, the application is engineered to be both **extensible** and **configurable**, making it an attractive stack for teams that need tight control over their tooling while still enjoying modern web interfaces.
Language
Frameworks
Database
VCS Integration
Overview
Smederee is a self‑hosted, web‑based project management platform that unifies code hosting, issue tracking, and code review around the lightweight darcs version control system. Designed with privacy in mind, it guarantees that user data never leaves the host environment, complying fully with EU GDPR and avoiding third‑party analytics. From a developer’s standpoint, the application is engineered to be both extensible and configurable, making it an attractive stack for teams that need tight control over their tooling while still enjoying modern web interfaces.
Technical Stack & Architecture
- Language: Go (Golang) for the core server, leveraging its static binaries and efficient concurrency model.
- Frameworks: The web layer is built on the
net/httpstandard library, augmented with lightweight routing (chi) and templating via Go’s nativehtml/template. - Database: PostgreSQL serves as the primary persistence layer, with a schema that stores users, repositories, issues, and review comments. The application uses SQLx for type‑safe queries.
- VCS Integration: The backbone is darcs, a content‑addressed, patch‑based VCS that simplifies distributed workflows. Darcs repositories are stored in a dedicated
data/reposdirectory and exposed through the web UI as read/write or read‑only endpoints. - Email & Webhook: An internal mail transport layer parses incoming patches and forwards them to the review subsystem, while outbound notifications are dispatched via SMTP or webhooks.
- Containerization: A
Dockerfileand accompanyingdocker-compose.ymlexpose the service as a single container, simplifying deployment in Kubernetes or Docker Swarm environments.
Core Capabilities & APIs
- Fine‑grained Access Control: Repository permissions are managed via role‑based ACLs. Users without accounts can be granted read‑only access, ideal for public documentation or open‑source forks.
- Issue Tracking API: RESTful endpoints (
/api/issues) allow CRUD operations on issues, tagging, and status transitions. The API supports query parameters for filtering by assignee, label, or due date. - Code Review Interface: Patches are presented as diff views in the browser, while email patches can be submitted directly to a repository. The review system emits events that can trigger CI pipelines once the “seamless CI/CD” feature matures.
- Webhooks: External services can subscribe to events such as
repo_created,issue_closed, orreview_merged. The webhook payload is JSON‑encoded and signed with HMAC for security. - CLI Utilities: A bundled
smederee-cli(written in Go) interacts with the REST API, enabling scripted repository management and automated issue creation.
Deployment & Infrastructure
- Self‑Hosting Requirements: A Linux host with Docker (or bare‑metal Go binary) and PostgreSQL is sufficient. The application bundles its own certificates, but supports external TLS termination via a reverse proxy (NGINX/Traefik).
- Scalability: Stateless HTTP workers can be horizontally scaled behind a load balancer. The PostgreSQL database can be replicated using logical replication for read scaling, while the darcs repository directory is kept on a shared NFS or object storage (e.g., MinIO).
- Backup Strategy: The
data/directory and PostgreSQL dumps can be archived daily; the application exposes a/backupendpoint that streams compressed archives to S3‑compatible storages.
Integration & Extensibility
- Plugin System: Developers can extend Smederee by writing Go plugins that hook into the lifecycle events (e.g.,
OnIssueCreated). These are loaded at startup via a simple configuration file. - Custom UI Themes: The templating layer accepts CSS overrides; developers can replace the default Bootstrap theme with Tailwind or their own stylesheet.
- External CI/CD Hooks: While the native CI/CD pipeline is still under development, the webhook system allows integration with Jenkins, GitHub Actions, or custom runners.
- OAuth & SSO: The authentication module supports LDAP and OAuth2 providers, enabling integration with corporate identity solutions.
Developer Experience
- Configuration: All settings are exposed through environment variables and a
config.yaml, making it straightforward to adjust ports, database URLs, or email credentials. - Documentation: The README provides a high‑level overview; the API docs are auto‑generated via Swagger and served at
/docs. - Community & Support: Although currently in public alpha, the project maintains an active GitHub issues tracker and a Slack channel for real‑time assistance. Contributions are encouraged through pull requests, with clear guidelines on code style and testing.
Use Cases
- Enterprise Open‑Source Teams: Companies wanting to host their own darcs repositories while providing a web UI for internal contributors.
- Compliance‑Heavy Projects: Startups or NGOs that must keep all data on premises due to regulatory constraints.
- Educational Environments: Universities can host Smederee for student projects, leveraging fine‑grained access control to separate teaching assistants from students.
- Custom Tooling Pipelines: Developers building proprietary CI/CD tools can
Open SourceReady to get started?
Join the community and start self-hosting Smederee today
Related Apps in development-tools
Hoppscotch
Fast, lightweight API development tool
code-server
Self-hosted development-tools
AppFlowy
AI-powered workspace for notes, projects, and wikis
Appwrite
All-in-one backend platform for modern apps
PocketBase
Lightweight Go backend in a single file
Gitea
Fast, lightweight self-hosted Git platform
Weekly Views
Repository Health
Information
Tags
Explore More Apps
txtdot
Text‑only web proxy for faster, ad‑free browsing
DSpace
Open source digital repository for academic and research institutions
string.is
Privacy‑friendly string conversion toolkit for developers
g3proxy
Async Rust forward proxy with TLS, SOCKS5, and reverse‑proxy support
RSS2EMail
Self-hosted other
VideoLAN Client (VLC)
Self-hosted other
