aboutsummaryrefslogtreecommitdiffhomepage
path: root/doc/Copy-a-Shaarli-installation-over-SSH-SCP,-serve-it-locally-with-php-cli.md
diff options
context:
space:
mode:
Diffstat (limited to 'doc/Copy-a-Shaarli-installation-over-SSH-SCP,-serve-it-locally-with-php-cli.md')
-rw-r--r--doc/Copy-a-Shaarli-installation-over-SSH-SCP,-serve-it-locally-with-php-cli.md66
1 files changed, 66 insertions, 0 deletions
diff --git a/doc/Copy-a-Shaarli-installation-over-SSH-SCP,-serve-it-locally-with-php-cli.md b/doc/Copy-a-Shaarli-installation-over-SSH-SCP,-serve-it-locally-with-php-cli.md
new file mode 100644
index 00000000..5b0aec6f
--- /dev/null
+++ b/doc/Copy-a-Shaarli-installation-over-SSH-SCP,-serve-it-locally-with-php-cli.md
@@ -0,0 +1,66 @@
1Example bash script:
2
3```
4#!/bin/bash
5#Description: Copy a Shaarli installation over SSH/SCP, serve it locally with php-cli
6#Will create a local-shaarli/ directory when you run it, backup your Shaarli there, and serve it locally.
7#Will NOT download linked pages. It's just a directly usable backup/copy/mirror of your Shaarli
8#Requires: ssh, scp and a working SSH access to the server where your Shaarli is installed
9#Usage: ./local-shaarli.sh
10#Author: nodiscc (nodiscc@gmail.com)
11#License: MIT (http://opensource.org/licenses/MIT)
12set -o errexit
13set -o nounset
14
15##### CONFIG #################
16#The port used by php's local server
17php_local_port=7431
18
19#Name of the SSH server and path where Shaarli is installed
20#TODO: pass these as command-line arguments
21remotehost="my.ssh.server"
22remote_shaarli_dir="/var/www/shaarli"
23
24
25###### FUNCTIONS #############
26_main() {
27 _CBSyncShaarli
28 _CBServeShaarli
29}
30
31_CBSyncShaarli() {
32 remote_temp_dir=$(ssh $remotehost mktemp -d)
33 remote_ssh_user=$(ssh $remotehost whoami)
34 ssh -t "$remotehost" sudo cp -r "$remote_shaarli_dir" "$remote_temp_dir"
35 ssh -t "$remotehost" sudo chown -R "$remote_ssh_user":"$remote_ssh_user" "$remote_temp_dir"
36 scp -rq "$remotehost":"$remote_temp_dir" local-shaarli
37 ssh "$remotehost" rm -r "$remote_temp_dir"
38}
39
40_CBServeShaarli() {
41 #TODO: allow serving a previously downloaded Shaarli
42 #TODO: ask before overwriting local copy, if it exists
43 cd local-shaarli/
44 php -S localhost:${php_local_port}
45 echo "Please go to http://localhost:${php_local_port}"
46}
47
48
49##### MAIN #################
50
51_main
52```
53
54This outputs:
55
56```
57$ ./local-shaarli.sh
58PHP 5.6.0RC4 Development Server started at Mon Sep 1 21:56:19 2014
59Listening on http://localhost:7431
60Document root is /home/user/local-shaarli/shaarli
61Press Ctrl-C to quit.
62
63[Mon Sep 1 21:56:27 2014] ::1:57868 [200]: /
64[Mon Sep 1 21:56:27 2014] ::1:57869 [200]: /index.html
65[Mon Sep 1 21:56:37 2014] ::1:57881 [200]: /...
66``` \ No newline at end of file