Skip to content

git hosting website

Notifications You must be signed in to change notification settings

0undefined/giz.sh

Repository files navigation

Giz

A containerized gitolite server with a django frontend.

Giz attempts to build on the following design: 0. The webserver dictates the state of the gitolite server.

  1. The gitolite server operates independently of the webserver.
  2. Everything triggered through the webserver, can also be triggered through gitolite.

The name is pronounced like "gits", like "git" in plural.

TODO

  1. Create Alpine image
  2. Setup gitolite
  3. Mount project
  4. Run django
  5. Fix gitolite configuration file We need to include user configuration files by adding include "*.conf" or something similar. Preferrably add them in a subdirectory, eihter conf/users/ and conf/organizations respectively.
  6. Setup prod environment
    • Setup gunicorn
    • Setup nginx
  7. Make django app production ready
    • Get secrets from variables
    • Also in docker
  8. Setup gitolite hooks to invalidate redis cache on push
  9. Buy domain
  10. Update documentation
  11. Modularize the whole thing
  • Git-to-giz communication should be a single module.
  • Git-to-giz module should always accept status of gitolite as the truth.
  • Git-to-giz module should be able to import all repositories (and users, assuming they're "well formed", ie. user/repo) from disk/git.
  • In case of "missing users", they should be created, and site admin should be able to manage said users (set mail, send password reset, etc.).
    • Bonus feature: look for GPG signed commits in repos that contain the users email address.
  • Repo viewer should be its own module.
    • The pull requests should be in this module.
    • repo preferences / settings should also live here.
  • Issues, CI/CD, documentation, releases, analytics should all be in their own modules.
  1. Developer environment
  • We should automatically populate the environment with users, repos, and other modules when DEBUG=True
  1. Frontend should have streamlined buttons, forms, (flex) containers et. al.
  • SCSS?

For a list of features that are planned, see TODO.md

Running

TODO: Steps for production deployment.

For running a local development environment 0. Setup credentials source ./setupenv