This project provides the core for the STACKIT Git Project. It contains the base code to have a STACKIT Git instance.
STACKIT Git is a git solution, forked from Forgejo, that allows developers store their code, project management, actions,... among other features.
- Go 1.25
- Docker for building the docker images, version
27.1.1
These are the first steps to be able to have your repository in your local machine
Download Microsoft Visual Studio Code
Follow instructions at https://code.visualstudio.com/docs/languages/go to setup Go extension for it.
Install Go:
brew install go
echo "Check the installed version is 1.25"
go versionInstall poetry
brew install poetry
poetry versionInstall npm
brew install npmInstall nvm
brew install nvm
nvm install v22.15.1- Clone the repository:
git clone git@github.com:pmanent/stackit-git.git- Download Dependencies
go mod tidyAnd then type the following commands (be aware that it can take a long time to finish. If you wish, you can run the first command followed by the parameter " --debug" to see the progress)
make deps
make buildContains all the logic and commands that will be received via CMD.
Custom folder contains the custom implementation for the STACKIT Git project, all the files that are not there will use the default files provided from the fork.
For UI changes, please use the custom folder to avoid merge conflicts in the future.
Package that includes all the struct and logic related to each struct.
Logic for each of the services.
Templates that are used for the UI with dynamic variables that can be replaced.
Contain all the tests for the application
This concept has a different section due to its relevance. The code uses this app.ini file to initialize multiple varibles and configurations depending on this file. that provides a general overview of the possible variables and configuration.
We have created an extra Section called stackitgitsettings, to add custom variables to this app.ini.
The injection of these variables is done via Secrets following the format: FORGEJO__{{section}}__{{VARIABLE_NAME_IN_CAPITAL}}
If you like any of the following, STACKIT Git is literally meant for you:
- Lightweight: STACKIT Git can easily be hosted on nearly every machine. Running on a Raspberry? Small cloud instance? No problem!
- Project management: Besides Git hosting, STACKIT Git offers issues, pull requests, wikis, kanban boards and much more to coordinate with your team.
- Publishing: Have something to share? Use releases to host your software for download, or use the package registry to publish it for docker, npm and many other package managers.
- Customizable: Want to change your look? Change some settings? There are many config switches to make STACKIT Git work exactly like you want.
- Powerful: Organizations & team permissions, CI integration, Code Search, LDAP, OAuth and much more. If you have advanced needs, STACKIT Git has you covered.
- Privacy: From update checker to default settings: STACKIT Git is built to be privacy first for you and your crew.
- Federation: (WIP) We are actively working to connect software forges with each other through ActivityPub, and create a collaborative network of personal instances.
STACKIT Git is distributed under the terms of the GPL version 3.0 or any later version.
If you are interested in making STACKIT Git better, either by reporting a bug or by changing the governance, please take a look at the contribution guide.