Go to file
2023-10-08 16:38:13 +02:00
Components fix: "hostname" env var is used by default in docker. Avoid conflict. 2023-10-01 21:15:18 +02:00
config feat: commit empty folder with gitkeep #12 2022-12-22 10:16:53 +01:00
Containers style: all files now match prettier conf 2023-09-10 15:58:08 +02:00
helpers feat: history in a log the repo list changes 2023-10-08 16:38:13 +02:00
medias Initial commit for BorgWarehouse to Github 2022-12-01 13:25:10 +01:00
pages feat: history in a log the repo list changes 2023-10-08 16:38:13 +02:00
public feat: add robots.txt and disallow by default 2023-09-10 15:05:17 +02:00
styles feat: select Apprise Mode 2023-03-09 12:45:42 +01:00
.dockerignore docker testing 2023-09-10 17:52:52 +02:00
.gitignore feat: add docker-compose.yml file 2023-10-01 22:06:51 +02:00
.pre-commit-config.yaml Add pre-commit: shellcheck 2023-06-07 18:39:25 +02:00
.prettierrc.json Add prettier configuration 2023-09-10 15:54:21 +02:00
docker-bw-init.sh feat: get SSH fingerprints and env 2023-09-23 19:09:08 +02:00
docker-compose.yml fix: uid/gid in docker 2023-10-05 21:21:55 +02:00
Dockerfile fix: uid/gid in docker 2023-10-05 21:21:55 +02:00
LICENSE Update Licence : GPL > AGPL 2022-12-01 16:05:59 +01:00
next.config.js Initial commit for BorgWarehouse to Github 2022-12-01 13:25:10 +01:00
package-lock.json Update dependencies 2023-10-08 12:10:19 +02:00
package.json Update dependencies 2023-10-08 12:10:19 +02:00
README.md fix: "hostname" env var is used by default in docker. Avoid conflict. 2023-10-01 21:15:18 +02:00

Next React

BorgWarehouse

A fast and modern WebUI for a BorgBackup's central repository server.
Explore the docs »

What is BorgWarehouse ?

BorgWarehouse is a graphical interface to manage a central BorgBackup repository server.

Today, if you want to have a large server on which you centralize backups of BorgBackup clients you have to do everything manually from the command line. It works, but in everyday life it can be complicated and adding, modifying, deleting repositories is always a bit long and tedious. If you want to do things right, you have to create a user on your server, associate him a public SSH key, give him a quota... in short it's a bit of work.

With BorgWarehouse, you have an interface that allows you to do all this simply and quickly :

  • add repositories
  • edit existing repositories
  • delete repositories
  • be alerted if there are no recent backups
  • monitor the volume of data
  • flexibly manage quotas for each repository
  • ...

The whole system part is automatically managed by BorgWarehouse and you don't have to touch your terminal anymore while enjoying a visual feedback on the status of your repositories.

Get started

You can find the documentation here : https://borgwarehouse.com/

🔑 Environment Variables

To run this project, you will need to add the following environment variables to your .env.local file.

Required variables :

  • NEXTAUTH_URL : The url of your application as https://borgwarehouse.com.
  • NEXTAUTH_SECRET : A secret random key.
  • CRONJOB_KEY : A secret API key for cronjob.
  • UNIX_USER : The unix user that run BorgWarehouse app.
  • FQDN : FQDN as borgwarehouse.com
  • SSH_SERVER_PORT : SSH port of your server as 22.
  • SSH_SERVER_FINGERPRINT_RSA : Your server SSH fingerprint for RSA.
  • SSH_SERVER_FINGERPRINT_ED25519 : Your server SSH fingerprint for ED25519.
  • SSH_SERVER_FINGERPRINT_ECDSA : Your server SSH fingerprint for ECDSA.

Example for a valid .env.local file :

# Application's variables
NEXTAUTH_URL=https://yourbwdomain.com
NEXTAUTH_SECRET=YOURFIRSTSECRET
CRONJOB_KEY=YOURSECONDSECRET
# Wizard's variables
UNIX_USER=borgwarehouse
FQDN=yourbwdomain.com
SSH_SERVER_PORT=22
SSH_SERVER_FINGERPRINT_RSA=SHA256:36mfYNRrm1aconVt6cBpi8LhAoPP4kB8QsVW4n8eGHQ
SSH_SERVER_FINGERPRINT_ED25519=SHA256:tYQuzrZZMqaw0Bzvn/sMoDs1CVEitZ9IrRyUg02yTPA
SSH_SERVER_FINGERPRINT_ECDSA=SHA256:nTpxui1oEmH9konPau17qBVIzBQVOsD1BIbBFU5IL04
# SMTP's variables
MAIL_SMTP_FROM=
MAIL_SMTP_HOST=
MAIL_SMTP_PORT=
MAIL_SMTP_LOGIN=
MAIL_SMTP_PWD=
MAIL_REJECT_SELFSIGNED_TLS=true
# Disable NextJS telemetry
NEXT_TELEMETRY_DISABLED=1

You can find more details about generating your secrets or retrieving your SSH fingerprint. You can find more details about generating your secrets or retrieving your SSH fingerprint in the documentation.

How to update ?

Check the online documentation just here !