Please sign in to access this page
Self-hostable lightweight Git forge built with CGI scripts and lighttpd.
No followers yet
Once you ship this you can't edit the description of the project, but you'll be able to add more devlogs and re-ship it as you add new features!
Added a few easter eggs and setup a demo deployment with HackClub nest: https://michael-m.hackclub.app/git
The demo is read-only, so you cannot push commits. If you want to see that functionality, this devlog has a video that shows most of the features. (Or you could setup a local instance by following the instructions in the README file)
Added some more features to the README display. It now supports loading images from the API, and also has a few new remark plugins.
Designed an API for checking the state of repositories. This is much more efficient than some of my initial solutions because it doesn't need a worktree of the repository. The API also uses CGI, as that is already used on the server for handling git via git http-backend. I also enabled directory listing(just for the API scripts folder), which gives me something like Swagger for very little effort. Users can go to /api
to get a list of available endpoints.
Integrated the new API with the frontend. I haven't implemented API endpoints for files or tags yet, so those tabs in the repo viewer are commented out for now. But, this means it is almost production-ready.
Redid the layout of the repository viewing page. It should work on mobile now as well, though the file/tag tabs will be hidden.
Made the Dockerfile into a multi-stage build. It builds the frontend first, and then copies it into the final image.
Added routing (or conditional configuration in lighttpd terms) to the lighttpd configuration. This allows the server to determine if a request should be handled by the frontend or if it should be passed on to the git http-backend CGI script wrapper.
Added a page for viewing a single repository instead of the list as a whole. It has a README viewer, a file browser, and a list of tags.
Added a WIP frontend using Vite/React/Typescript. The single file plugin is included so that the final version will be easier to copy into the docker container.
The UI does not look great at the moment and it does not make API calls yet.