aboutsummaryrefslogtreecommitdiffstats
path: root/doc/pl/admin/hub_snapshots.md
diff options
context:
space:
mode:
Diffstat (limited to 'doc/pl/admin/hub_snapshots.md')
-rw-r--r--doc/pl/admin/hub_snapshots.md127
1 files changed, 127 insertions, 0 deletions
diff --git a/doc/pl/admin/hub_snapshots.md b/doc/pl/admin/hub_snapshots.md
new file mode 100644
index 000000000..1a5bd2d4f
--- /dev/null
+++ b/doc/pl/admin/hub_snapshots.md
@@ -0,0 +1,127 @@
+### Hub Snapshot Tools
+
+Programiści Hubzilli często muszą przełączać się między gałęziami, które mogą
+mieć niekompatybilne schematy lub zawartość bazy danych. Poniższe dwa skrypty
+tworzą i przywracają pełne migawki instancji Hubzilli, w tym zarówno główny
+katalog sieciowy, jak i stan całej bazy danych. Każdy skrypt wymaga pliku
+konfiguracyjnego o nazwie `hub-snapshot.conf` znajdującego się w tym samym
+folderze i zawiera on określone katalogi i szczegóły bazy danych huba.
+
+### Konfiguracja
+
+Format pliku konfiguracyjnego jest bardzo ścisły. Między nazwą zmiennej a
+wartością nie może być spacji. Zastąp tylko treść w cudzysłowach swoją
+konfiguracją. Zapisz ten plik jako `hub-snapshot.conf` obok skryptów.
+
+ # Location of hub root. Typically this is the location of the Hubzilla repo clone.
+ HUBROOT="/var/www/"
+ # MySQL database name
+ DBNAME="hubzilla"
+ # MySQL database user
+ DBUSER="hubzilla"
+ # MySQL database password
+ DBPWD="akeufajeuwfb"
+ # The target snapshot folder where the git repo will be initialized
+ SNAPSHOTROOT="/root/snapshots/hubzilla/"
+
+### Migawka
+
+Przykład użycia:
+
+ sh hub-snapshot.sh my-hub.conf "Commit message for the snapshot"
+
+**hub-snapshot.sh**:
+
+ #!/bin/bash
+
+ if ! [ -f "$1" ]; then
+ echo "$1 is not a valid file. Aborting..."
+ exit 1
+ fi
+ source "$1"
+ #echo "$DBNAME"
+ #echo "$DBUSER"
+ #echo "$DBPWD"
+ #echo "$HUBROOT"
+ #echo "$SNAPSHOTROOT"
+ MESSAGE="snapshot: $2"
+
+ if [ "$DBPWD" == "" -o "$SNAPSHOTROOT" == "" -o "$DBNAME" == "" -o "$DBUSER" == "" -o "$HUBROOT" == "" ]; then
+ echo "Required variable is not set. Aborting..."
+ exit 1
+ fi
+
+ if [ ! -d "$SNAPSHOTROOT"/db/ ]; then
+ mkdir -p "$SNAPSHOTROOT"/db/
+ fi
+ if [ ! -d "$SNAPSHOTROOT"/www/ ]; then
+ mkdir -p "$SNAPSHOTROOT"/www/
+ fi
+
+ if [ ! -d "$SNAPSHOTROOT"/www/ ] || [ ! -d "$SNAPSHOTROOT"/db/ ]; then
+ echo "Error creating snapshot directories. Aborting..."
+ exit 1
+ fi
+
+ echo "Export database..."
+ mysqldump -u "$DBUSER" -p"$DBPWD" "$DBNAME" > "$SNAPSHOTROOT"/db/"$DBNAME".sql
+ echo "Copy hub root files..."
+ rsync -va --delete --exclude=.git* "$HUBROOT"/ "$SNAPSHOTROOT"/www/
+
+ cd "$SNAPSHOTROOT"
+
+ if [ ! -d ".git" ]; then
+ git init
+ fi
+ if [ ! -d ".git" ]; then
+ echo "Cannot initialize git repo. Aborting..."
+ exit 1
+ fi
+
+ git add -A
+ echo "Commit hub snapshot..."
+ git commit -a -m "$MESSAGE"
+
+ exit 0
+
+### Przywracanie
+
+ #!/bin/bash
+ # Restore hub to a previous state. Input hub config and commit hash
+
+ if ! [ -f "$1" ]; then
+ echo "$1 is not a valid file. Aborting..."
+ exit 1
+ fi
+ source "$1"
+ COMMIT=$2
+
+ if [ "$DBPWD" == "" -o "$SNAPSHOTROOT" == "" -o "$DBNAME" == "" -o "$DBUSER" == "" -o "$HUBROOT" == "" ]; then
+ echo "Required variable is not set. Aborting..."
+ exit 1
+ fi
+ RESTOREDIR="$(mktemp -d)/"
+
+ if [ ! -d "$RESTOREDIR" ]; then
+ echo "Cannot create restore directory. Aborting..."
+ exit 1
+ fi
+ echo "Cloning the snapshot repo..."
+ git clone "$SNAPSHOTROOT" "$RESTOREDIR"
+ cd "$RESTOREDIR"
+ echo "Checkout requested snapshot..."
+ git checkout "$COMMIT"
+ echo "Restore hub root files..."
+ rsync -a --delete --exclude=.git* "$RESTOREDIR"/www/ "$HUBROOT"/
+ echo "Restore hub database..."
+ mysql -u "$DBUSER" -p"$DBPWD" "$DBNAME" < "$RESTOREDIR"/db/"$DBNAME".sql
+
+ chown -R www-data:www-data "$HUBROOT"/{store,extend,addon,.htlog,.htconfig.php}
+
+ echo "Restored hub to snapshot $COMMIT"
+ echo "Removing temporary files..."
+
+ rm -rf "$RESTOREDIR"
+
+ exit 0
+