Main analytics dashboard showing key metrics and visualizations
Psyduck is a single executable binary that functions as both a server and a command-line interface. This privacy-friendly analytics tool is built with modern technologies for fast data processing and runs with zero external dependencies.
- Single Binary: Just one executable that serves as a server, frontend and CLI tool
- Privacy-First: All data processing happens on your infrastructure - no data leaves your control
- Fast Analytics: Powered by DuckDB for lightning-fast analytical queries, ideal for small to medium websites
- Modern Stack: Built with Bun and React for optimal performance
- Self-Hosted: Complete control over your analytics data
- Lightweight: Minimal resource footprint compared to traditional analytics solutions
The Psyduck binary contains both server and CLI functionality.
Initialize the configuration and create the initial admin user:
psyduck initAdditional options:
# Add an additional user
psyduck init --add-userManage database migrations:
# Run all pending migrations
psyduck migrate up
# Rollback the last migration
psyduck migrate down
# Rollback a specific number of migrations
psyduck migrate down --number 3
# Show help for migration options
psyduck migrate --helpStart the Psyduck server:
psyduck serverThe server will start on port 9876 by default (or as configured in your .env file).
Run an interactive command selector with a user-friendly menu:
psyduck interactiveShow help information for all commands:
psyduck --help- Runtime: Bun for fast JavaScript execution
- Frontend: React with modern JavaScript tooling
- Database: DuckDB for analytical workloads
- Package Manager: Bun for dependency management
Built as a single executable with no external runtime dependencies.
- Bun (v1.0+ recommended)
git clone https://github.com/fivebits.io/psyduck.git
cd psyduck# Install all workspace dependencies
bun installPsyduck comes as a single executable binary after building.
Initialize Configuration (required on first run):
psyduck initRun Database Migrations:
psyduck migrate upStart the Server:
psyduck serverBuild the single executable containing both server and CLI functionality:
bun run build:standaloneThis creates a single binary at ./dist/psyduck that you can use as just psyduck from anywhere in your system.
For development, you can run the server directly:
bun run devThe backend will typically run on http://localhost:9876.
Run Migrations:
psyduck migrate upOpen DuckDB Shell:
bun dbConfiguration is handled through environment variables and the data/config.json file. The init command will prompt you to set up the initial configuration including JWT secret and admin user credentials.
Psyduck is currently in active development. This means:
- Features may change or break between updates
- APIs are not stable and may change
- Documentation may be incomplete or outdated
- Expect breaking changes - backup your data regularly
We recommend using Psyduck for testing and development purposes only until we reach a stable release.
Remember: This project is under active development. Star and watch this repository to stay updated with the latest changes!
