GitHub - vlang/gitly: Light and fast GitHub/GitLab alternative written in V

2 min read Original article ↗

CI

GitHub/GitLab alternative written in V.

https://gitly.org

  • Light and fast
  • Minimal amount of RAM usage (works great on the cheapest $3.5 AWS Lightsail instance)
  • Easy to deploy (a single <1 MB binary that includes compiled templates)
  • Works without JavaScript
  • Detailed language stats for each directory
  • "Top files" feature to give an overview of the project

This is beta software

The V web framework and Gitly are at an early stage of development. Lots of features are missing. The biggest missing features that will be implemented soon:

  • Multiple users and multiple repos
  • git push
  • Access via ssh
  • Pull requests

Gitly builds against PostgreSQL by default. Create the default PostgreSQL role/database with:

To build a SQLite-backed binary instead, use:

The SQLite database path defaults to gitly.sqlite and can be changed with sqlite.path in config.json or GITLY_SQLITE_PATH. PostgreSQL settings can be changed with pg in config.json, GITLY_DB_* environment variables, or the usual PG* environment variables.

If you don't want to install sassc, you can simply run

curl https://gitly.org/css/gitly.css --output static/css/gitly.css

Required dependencies:

  • V 0.4.2 93ff40a (https://vlang.io)
  • SQLite (Ubuntu/Debian: libsqlite3-dev)
  • PostgreSQL client library (Ubuntu/Debian: libpq-dev, macOS: brew install libpq)
  • Markdown (v install markdown)
  • sassc

Features

  • Track performance in CI (e.g. compare certain binary performance across different commits)

  • Run only certain actions for commits (e.g. you're a fixing a bug that involves only a certain OS, and you don't want to wait for other CI)

  • Prioritize CI runs (e.g. this PR must be handled first, then the rest)

  • "Top files" mode

  • Release files can only be generated by CI/CD, with the version of the tree used always available. This prevents malware binaries.