GitSave is a self-hosted and open-source application that backs up your Git repositories.
TypeScript
318
20 commits
updated Sep 26, 2026
Easily back up your Git repositories on a schedule.

https://github.com/user-attachments/assets/301b28ca-6b72-490a-8efb-217e39fb73d3
So be prepared and keep backups of your own and favourite Git repositories.
[!WARNING] Make sure to change the env variables "JWT_SECRET" and "ENCRYPTION_SECRET" to something secure. Clone this repository and run
npm run secrets(works on Windows, macOS and Linux) to generate a ready-to-use pair of secrets. The ENCRYPTION_SECRET must be 32 characters long.
docker run -d --restart=always -p 3000:3000 -v gitsave:/app/data -v ./backups:/app/backups -e JWT_SECRET={YOUR_SECRET_HERE} -e ENCRYPTION_SECRET={YOUR_SECRET_HERE_32_CHARACTERS} -e DISABLE_AUTH=false --name GitSave timwitzdam/gitsave:latest
# Generate a JWT_SECRET and a 32 character ENCRYPTION_SECRET: npm run secrets
JWT_SECRET="REPLACE_THIS"
DISABLE_AUTH=false
ENCRYPTION_SECRET="REPLACE_THIS_WITH_32_CHARACTERS_SECRET"
docker-compose.yml fileservices:
gitsave:
image: timwitzdam/gitsave:latest
container_name: GitSave
restart: always
ports:
- "3000:3000"
volumes:
- gitsave:/app/data
- ./backups:/app/backups
environment:
- JWT_SECRET=${JWT_SECRET:?error}
- DISABLE_AUTH=${DISABLE_AUTH:?error}
- ENCRYPTION_SECRET=${ENCRYPTION_SECRET:?error}
volumes:
gitsave:
You're welcome to contribute to GitSave or open an issue if you have any suggestions or find any problems.
I'm also available via mail: contact@witzdam.com
19 commits
1 commits
TypeScript
94.5%
Astro
4.5%
GitSave is a self-hosted and open-source application that backs up your Git repositories.
TypeScript
318
20 commits
updated Sep 26, 2026
Easily back up your Git repositories on a schedule.

https://github.com/user-attachments/assets/301b28ca-6b72-490a-8efb-217e39fb73d3
So be prepared and keep backups of your own and favourite Git repositories.
[!WARNING] Make sure to change the env variables "JWT_SECRET" and "ENCRYPTION_SECRET" to something secure. Clone this repository and run
npm run secrets(works on Windows, macOS and Linux) to generate a ready-to-use pair of secrets. The ENCRYPTION_SECRET must be 32 characters long.
docker run -d --restart=always -p 3000:3000 -v gitsave:/app/data -v ./backups:/app/backups -e JWT_SECRET={YOUR_SECRET_HERE} -e ENCRYPTION_SECRET={YOUR_SECRET_HERE_32_CHARACTERS} -e DISABLE_AUTH=false --name GitSave timwitzdam/gitsave:latest
# Generate a JWT_SECRET and a 32 character ENCRYPTION_SECRET: npm run secrets
JWT_SECRET="REPLACE_THIS"
DISABLE_AUTH=false
ENCRYPTION_SECRET="REPLACE_THIS_WITH_32_CHARACTERS_SECRET"
docker-compose.yml fileservices:
gitsave:
image: timwitzdam/gitsave:latest
container_name: GitSave
restart: always
ports:
- "3000:3000"
volumes:
- gitsave:/app/data
- ./backups:/app/backups
environment:
- JWT_SECRET=${JWT_SECRET:?error}
- DISABLE_AUTH=${DISABLE_AUTH:?error}
- ENCRYPTION_SECRET=${ENCRYPTION_SECRET:?error}
volumes:
gitsave:
You're welcome to contribute to GitSave or open an issue if you have any suggestions or find any problems.
I'm also available via mail: contact@witzdam.com
19 commits
1 commits
TypeScript
94.5%
Astro
4.5%