backup server side executed python scripts for managing linux and windows system and application data backups, developed by adminsys for adminsys
Go to file
k3nny 8ef9bbde06
All checks were successful
lint / docker (push) Successful in 9m15s
improve README.md
2024-11-30 00:20:51 +01:00
.gitea/workflows EOF & whitespace 2024-11-29 00:54:31 +01:00
.vscode EOF & whitespace 2024-11-29 00:54:31 +01:00
deb EOF & whitespace 2024-11-29 00:54:09 +01:00
docs EOF & whitespace 2024-11-29 00:54:09 +01:00
docs-sphinx-rst fix iniparse 2024-11-29 23:45:40 +01:00
libtisbackup fix iniparse 2024-11-29 23:45:40 +01:00
rpm EOF & whitespace 2024-11-29 00:54:09 +01:00
samples EOF & whitespace 2024-11-29 00:54:09 +01:00
scripts EOF & whitespace 2024-11-29 00:54:09 +01:00
static EOF & whitespace 2024-11-29 00:54:09 +01:00
templates EOF & whitespace 2024-11-29 00:54:09 +01:00
.gitignore fix first pass - .gitignore 2024-11-28 23:21:26 +01:00
.hadolint.yml EOF & whitespace 2024-11-29 00:54:31 +01:00
.pre-commit-config.yaml fix iniparse 2024-11-29 23:45:40 +01:00
compose.yml EOF & whitespace 2024-11-29 00:54:09 +01:00
config.py fix iniparse 2024-11-29 23:45:40 +01:00
cron.sh fix first pass 2024-11-28 23:20:19 +01:00
Dockerfile EOF & whitespace 2024-11-29 00:54:09 +01:00
entrypoint.sh EOF & whitespace 2024-11-29 00:54:09 +01:00
pyproject.toml fix iniparse 2024-11-29 23:45:40 +01:00
README.md improve README.md 2024-11-30 00:20:51 +01:00
requirements.txt requirements.txt 2024-11-29 00:02:24 +01:00
tasks.py fix iniparse 2024-11-29 23:45:40 +01:00
tisbackup_gui.py fix iniparse 2024-11-29 23:45:40 +01:00
tisbackup.py few fixes and lint compatible 2024-11-29 00:48:59 +01:00

TISBackup

This is the repository of the TISBackup project, licensed under GPLv3.

TISBackup is a python script to backup servers.

It runs at regular intervals to retrieve different data types on remote hosts such as database dumps, files, virtual machine images and metadata.

Install using Compose

Clone that repository and build the pod image using the provided Dockerfile

docker build . -t tisbackup:latest

In another folder, create subfolders as following

mkdir -p /var/tisbackup/{backup/log,config,ssh}/

Expected structure

/var/tisbackup/
    └─backup/                   <-- backup location
    └─config/
      ├── tisbackup-config.ini  <-- backups config
      └── tisbackup_gui.ini     <-- tisbackup config
    └─ssh/
      ├── id_rsa                <-- SSH Key
      └── id_rsa.pub            <-- SSH PubKey
    compose.yaml

Adapt the compose.yml file to suits your needs, one pod act as the WebUI front end and the other as the crond scheduler

services:
  tisbackup_gui:
    container_name: tisbackup_gui
    image: "tisbackup:latest"
    build: .
    volumes:
      - ./config/:/etc/tis/
      - ./backup/:/backup/
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    restart: unless-stopped
    ports:
      - 9980:8080

  tisbackup_cron:
    container_name: tisbackup_cron
    image: "tisbackup:latest"
    build: .
    volumes:
      - ./config/:/etc/tis/
      - ./ssh/:/config_ssh/
      - ./backup/:/backup/
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    restart: always
    command: "/bin/bash /opt/tisbackup/cron.sh"

Configuration

  • Provide an SSH key and store it in ./ssh
  • Setup config files in the ./config directory

tisbackup-config.ini

[global]
backup_base_dir = /backup/

# backup retention in days
backup_retention_time=90

# for nagios check in hours
maximum_backup_age=30

[srvads-poudlard-samba]
type=rsync+ssh
server_name=srvads.poudlard.lan
remote_dir=/var/lib/samba/
compression=True
;exclude_list="/proc/**","/sys/**","/dev/**"
private_key=/config_ssh/id_rsa
ssh_port = 22

tisbackup_gui.ini

[general]
config_tisbackup= /etc/tis/tisbackup-config.ini
sections=
ADMIN_EMAIL=josebove@internet.fr
base_config_dir= /etc/tis/
backup_base_dir=/backup/

Run!

docker compose up -d

About

Tranquil IT is the original author of TISBackup.

The documentation is provided under the license CC-BY-SA and can be found on readthedoc.