Compare commits
No commits in common. "main" and "v0.3.0" have entirely different histories.
7 changed files with 27 additions and 70 deletions
12
.nix/flake.lock
generated
12
.nix/flake.lock
generated
|
@ -5,11 +5,11 @@
|
||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731533236,
|
"lastModified": 1689068808,
|
||||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
"narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
"rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -20,11 +20,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1738297584,
|
"lastModified": 1692190437,
|
||||||
"narHash": "sha256-AYvaFBzt8dU0fcSK2jKD0Vg23K2eIRxfsVXIPCW9a0E=",
|
"narHash": "sha256-yJUZzmzSmDYb9ONPnMQDru66RjZgGQZRvj3tQebkexk=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "9189ac18287c599860e878e905da550aa6dec1cd",
|
"rev": "9b2aa98db6b10503666a50f4eb93b2fc0d57bde5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
25
Dockerfile
25
Dockerfile
|
@ -1,27 +1,10 @@
|
||||||
FROM kopia/kopia:0.19
|
FROM kopia/kopia
|
||||||
|
|
||||||
ENV DEBIAN_FRONTEND=noninteractive
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
RUN apt-get update && apt-get install -y gnupg2 wget lsb-release
|
RUN apt-get update && apt-get install -y cron && rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
RUN echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list
|
ARG KOPIA_CRON_TIMES="*/30 * * * *"
|
||||||
RUN wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
|
ENV KOPIA_CRON_TIMES ${KOPIA_CRON_TIMES}
|
||||||
|
|
||||||
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 run-backup.sh /
|
||||||
ADD entrypoint.sh /
|
ADD entrypoint.sh /
|
||||||
|
|
|
@ -1,10 +1,9 @@
|
||||||
#!/usr/bin/env sh
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
VERSION="0.15.0"
|
SKIP=no-commit-to-branch,prettier CI=false npx semantic-release
|
||||||
|
|
||||||
docker login git.molez.org
|
VERSION=`npx semantic-release --version`
|
||||||
|
|
||||||
docker image build --tag git.molez.org/mandlm/kopia:"${VERSION}" --tag git.molez.org/mandlm/kopia:latest .
|
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:"${VERSION}"
|
|
||||||
docker image push git.molez.org/mandlm/kopia:latest
|
docker image push git.molez.org/mandlm/kopia:latest
|
||||||
|
|
|
@ -1,21 +1,11 @@
|
||||||
#!/bin/bash
|
#!/bin/sh
|
||||||
|
|
||||||
if [[ -z ${KOPIA_CRON_SCHEDULE} ]];
|
|
||||||
then
|
|
||||||
echo "Running in one-shot mode"
|
|
||||||
|
|
||||||
/run-backup.sh
|
|
||||||
else
|
|
||||||
CRONTAB=/etc/cron.d/kopia-backup
|
CRONTAB=/etc/cron.d/kopia-backup
|
||||||
|
|
||||||
printenv > /etc/environment
|
echo "Running cron with schedule ${KOPIA_CRON_TIMES}"
|
||||||
|
|
||||||
echo "Running cron with schedule ${KOPIA_CRON_SCHEDULE}"
|
echo "${KOPIA_CRON_TIMES} /run-backup.sh > /dev/stdout" > ${CRONTAB}
|
||||||
|
|
||||||
echo "${KOPIA_CRON_SCHEDULE} /run-backup.sh > /var/log/kopia-backup.log 2>&1" > ${CRONTAB}
|
|
||||||
chmod 0644 ${CRONTAB}
|
chmod 0644 ${CRONTAB}
|
||||||
crontab ${CRONTAB}
|
crontab ${CRONTAB}
|
||||||
|
|
||||||
touch /var/log/kopia-backup.log
|
cron -f
|
||||||
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",
|
"name": "kopia",
|
||||||
"version": "0.14.0",
|
"version": "0.3.0",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "kopia",
|
"name": "kopia",
|
||||||
"version": "0.14.0",
|
"version": "0.3.0",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@semantic-release/git": "^10.0.1",
|
"@semantic-release/git": "^10.0.1",
|
||||||
"semantic-release": "^21.0.2"
|
"semantic-release": "^21.0.2"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "kopia",
|
"name": "kopia",
|
||||||
"version": "0.14.0",
|
"version": "0.3.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@semantic-release/git": "^10.0.1",
|
"@semantic-release/git": "^10.0.1",
|
||||||
|
|
|
@ -1,25 +1,10 @@
|
||||||
#!/bin/bash
|
#!/bin/sh
|
||||||
|
|
||||||
echo "Running backup at $(date)"
|
kopia --version
|
||||||
|
|
||||||
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 \
|
kopia repository connect filesystem \
|
||||||
--path /repository \
|
--path /repository \
|
||||||
--override-hostname ${KOPIA_HOSTNAME} \
|
--override-hostname ${KOPIA_HOSTNAME} \
|
||||||
--override-username ${KOPIA_USERNAME}
|
--override-username ${KOPIA_USERNAME}
|
||||||
|
|
||||||
kopia snapshot create ${KOPIA_BACKUP_PATH}
|
kopia snapshot create /backup
|
||||||
|
|
||||||
echo "Finished backup at $(date)"
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue