Compare commits
50 commits
Author | SHA1 | Date | |
---|---|---|---|
0ae4e4dee6 | |||
32c2b63775 | |||
|
fa9e1e4526 | ||
50438b4737 | |||
|
d49df9490b | ||
2e54c4f3a7 | |||
786e1b5fc4 | |||
|
79c69793b8 | ||
83f20d76c4 | |||
6625f052ac | |||
|
bde4645527 | ||
62d0aeda3a | |||
|
518fe2ac49 | ||
9547f357ce | |||
|
d565465665 | ||
a9c96d5854 | |||
|
6077666731 | ||
37e9eec1d0 | |||
|
1539a357b3 | ||
4d7a1107c1 | |||
|
fbd294bc93 | ||
90890fb5d3 | |||
|
160437f93e | ||
7adba5a4ab | |||
|
421b277acf | ||
9ea4fc4489 | |||
|
efafb8c206 | ||
62569d9abf | |||
|
2be4717780 | ||
59c6e28c2d | |||
|
6da89c61fc | ||
73281c75b5 | |||
|
c887b11391 | ||
2342c94ccd | |||
|
9dfb370dc9 | ||
ee578dad39 | |||
|
2b390f1915 | ||
bde3ea553f | |||
|
e268c20f89 | ||
550e7857a6 | |||
|
a31e7fca38 | ||
6dc493b37e | |||
|
d2a3aa0b32 | ||
8d176abaea | |||
|
0c4abe1922 | ||
39f4506b27 | |||
|
5779b3ce01 | ||
e8902aded4 | |||
|
d355a06c10 | ||
194be79fa6 |
7 changed files with 89 additions and 14 deletions
12
.nix/flake.lock
generated
12
.nix/flake.lock
generated
|
@ -5,11 +5,11 @@
|
|||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1689068808,
|
||||
"narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=",
|
||||
"lastModified": 1731533236,
|
||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4",
|
||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -20,11 +20,11 @@
|
|||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1692190437,
|
||||
"narHash": "sha256-yJUZzmzSmDYb9ONPnMQDru66RjZgGQZRvj3tQebkexk=",
|
||||
"lastModified": 1738297584,
|
||||
"narHash": "sha256-AYvaFBzt8dU0fcSK2jKD0Vg23K2eIRxfsVXIPCW9a0E=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "9b2aa98db6b10503666a50f4eb93b2fc0d57bde5",
|
||||
"rev": "9189ac18287c599860e878e905da550aa6dec1cd",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
30
Dockerfile
30
Dockerfile
|
@ -1 +1,29 @@
|
|||
FROM kopia/kopia
|
||||
FROM kopia/kopia:0.19
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
RUN apt-get update && apt-get install -y gnupg2 wget lsb-release
|
||||
|
||||
RUN echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list
|
||||
RUN wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
|
||||
|
||||
RUN apt-get update && apt-get install -y cron postgresql-client-17 lftp && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ARG KOPIA_CRON_SCHEDULE
|
||||
ENV KOPIA_CRON_SCHEDULE ${KOPIA_CRON_SCHEDULE}
|
||||
|
||||
ARG KOPIA_USERNAME
|
||||
ENV KOPIA_USERNAME ${KOPIA_USERNAME}
|
||||
|
||||
ARG KOPIA_HOSTNAME
|
||||
ENV KOPIA_HOSTNAME ${KOPIA_HOSTNAME}
|
||||
|
||||
ARG KOPIA_PASSWORD
|
||||
ENV KOPIA_PASSWORD ${KOPIA_PASSWORD}
|
||||
|
||||
ARG KOPIA_BACKUP_PATH=/backup
|
||||
ENV KOPIA_BACKUP_PATH ${KOPIA_BACKUP_PATH}
|
||||
|
||||
ADD run-backup.sh /
|
||||
ADD entrypoint.sh /
|
||||
|
||||
ENTRYPOINT [ "/entrypoint.sh" ]
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
SKIP=no-commit-to-branch,prettier CI=false npx semantic-release
|
||||
VERSION="0.15.0"
|
||||
|
||||
VERSION=`npx semantic-release --version`
|
||||
docker login git.molez.org
|
||||
|
||||
docker image build --tag git.molez.org/mandlm/kopia:${VERSION} --tag git.molez.org/mandlm/kopia:latest .
|
||||
docker image push git.molez.org/mandlm/kopia:${VERSION}
|
||||
docker image build --tag git.molez.org/mandlm/kopia:"${VERSION}" --tag git.molez.org/mandlm/kopia:latest .
|
||||
|
||||
docker image push git.molez.org/mandlm/kopia:"${VERSION}"
|
||||
docker image push git.molez.org/mandlm/kopia:latest
|
||||
|
|
21
entrypoint.sh
Executable file
21
entrypoint.sh
Executable file
|
@ -0,0 +1,21 @@
|
|||
#!/bin/bash
|
||||
|
||||
if [[ -z ${KOPIA_CRON_SCHEDULE} ]];
|
||||
then
|
||||
echo "Running in one-shot mode"
|
||||
|
||||
/run-backup.sh
|
||||
else
|
||||
CRONTAB=/etc/cron.d/kopia-backup
|
||||
|
||||
printenv > /etc/environment
|
||||
|
||||
echo "Running cron with schedule ${KOPIA_CRON_SCHEDULE}"
|
||||
|
||||
echo "${KOPIA_CRON_SCHEDULE} /run-backup.sh > /var/log/kopia-backup.log 2>&1" > ${CRONTAB}
|
||||
chmod 0644 ${CRONTAB}
|
||||
crontab ${CRONTAB}
|
||||
|
||||
touch /var/log/kopia-backup.log
|
||||
cron && tail -f /var/log/kopia-backup.log
|
||||
fi
|
4
package-lock.json
generated
4
package-lock.json
generated
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"name": "kopia",
|
||||
"version": "0.0.1",
|
||||
"version": "0.14.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "kopia",
|
||||
"version": "0.0.1",
|
||||
"version": "0.14.0",
|
||||
"devDependencies": {
|
||||
"@semantic-release/git": "^10.0.1",
|
||||
"semantic-release": "^21.0.2"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "kopia",
|
||||
"version": "0.0.1",
|
||||
"version": "0.14.0",
|
||||
"private": true,
|
||||
"devDependencies": {
|
||||
"@semantic-release/git": "^10.0.1",
|
||||
|
|
25
run-backup.sh
Executable file
25
run-backup.sh
Executable file
|
@ -0,0 +1,25 @@
|
|||
#!/bin/bash
|
||||
|
||||
echo "Running backup at $(date)"
|
||||
|
||||
if [[ -v KOPIA_PG_DATABASE ]];
|
||||
then
|
||||
echo "Dumping database ${KOPIA_PG_DATABASE}"
|
||||
PGPASSWORD=$KOPIA_PG_PASSWORD pg_dump --host=$KOPIA_PG_HOST --username=$KOPIA_PG_USER $KOPIA_PG_DATABASE > /backup/database/$KOPIA_PG_DATABASE.sqldump || exit 1
|
||||
fi
|
||||
|
||||
if [[ -v KOPIA_FTP_HOST ]];
|
||||
then
|
||||
echo "Downloading from ftp server ${KOPIA_FTP_HOST}"
|
||||
|
||||
lftp -u "$KOPIA_FTP_USER","$KOPIA_FTP_PASSWORD" -e "set ssl:verify-certificate no; mirror --delete --parallel=4 --use-pget-n=10 / /backup/ftp;" $KOPIA_FTP_HOST || exit 1
|
||||
fi
|
||||
|
||||
kopia repository connect filesystem \
|
||||
--path /repository \
|
||||
--override-hostname ${KOPIA_HOSTNAME} \
|
||||
--override-username ${KOPIA_USERNAME}
|
||||
|
||||
kopia snapshot create ${KOPIA_BACKUP_PATH}
|
||||
|
||||
echo "Finished backup at $(date)"
|
Loading…
Add table
Add a link
Reference in a new issue