]> git.immae.eu Git - github/shaarli/Shaarli.git/blob - doc/md/Copy-an-existing-installation-over-SSH-and-serve-it-locally.md
Generate HTML documentation using MkDocs (WIP)
[github/shaarli/Shaarli.git] / doc / md / Copy-an-existing-installation-over-SSH-and-serve-it-locally.md
1 Example bash script:
2
3 ```bash
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)
12 set -o errexit
13 set -o nounset
14
15 ##### CONFIG #################
16 #The port used by php's local server
17 php_local_port=7431
18
19 #Name of the SSH server and path where Shaarli is installed
20 #TODO: pass these as command-line arguments
21 remotehost="my.ssh.server"
22 remote_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
54 This outputs:
55
56 ```bash
57 $ ./local-shaarli.sh
58 PHP 5.6.0RC4 Development Server started at Mon Sep 1 21:56:19 2014
59 Listening on http://localhost:7431
60 Document root is /home/user/local-shaarli/shaarli
61 Press 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 ```