2014-03-01 02:39:06 +00:00
|
|
|
Here's the scenario: You have a remote server you can ssh into,
|
|
|
|
and you want to use the git-annex webapp there, displaying back on your local
|
|
|
|
web browser.
|
|
|
|
|
|
|
|
Sure, no problem! It can even be done securely!
|
|
|
|
|
2014-03-01 04:31:17 +00:00
|
|
|
Let's start by making the git-annex repository on the remote server.
|
|
|
|
|
|
|
|
git init annex
|
|
|
|
cd annex
|
|
|
|
git annex init
|
|
|
|
|
|
|
|
Now, you need to generate a private key and a certificate for HTTPS.
|
2014-03-01 02:39:06 +00:00
|
|
|
These files are stored in `.git/annex/privkey.pem` and
|
|
|
|
`.git/annex/certificate.pem` inside the git repository. Here's
|
|
|
|
one way to generate those files, using a self-signed certificate:
|
|
|
|
|
2014-03-01 04:41:29 +00:00
|
|
|
(umask 077 ; openssl genrsa -out .git/annex/privkey.pem 4096)
|
2014-03-01 02:39:06 +00:00
|
|
|
openssl req -new -x509 -key .git/annex/privkey.pem > .git/annex/certificate.pem
|
|
|
|
|
|
|
|
With those files in place, git-annex will automatically only accept HTTPS
|
|
|
|
connections. That's good, since HTTP connections are not secure over the
|
|
|
|
big bad internet.
|
|
|
|
|
2014-03-01 04:31:17 +00:00
|
|
|
All that remains is to make the webapp listen on the external interface
|
2014-03-01 02:39:06 +00:00
|
|
|
of the server. Normally, for security, git-annex only listens on localhost.
|
2014-03-01 04:31:17 +00:00
|
|
|
Tell it what hostname to listen on:
|
2014-03-01 02:39:06 +00:00
|
|
|
|
2014-03-01 04:31:17 +00:00
|
|
|
git config annex.listen host.example.com
|
2014-03-01 02:39:06 +00:00
|
|
|
|
|
|
|
(If your hostname doesn't work, its IP address certianly will..)
|
|
|
|
|
2014-03-01 04:31:17 +00:00
|
|
|
When you run the webapp configured like that, it'll print out the
|
|
|
|
URL to use to open it. You can paste that into your web browser.
|
|
|
|
|
|
|
|
git annex webapp
|
|
|
|
http://host.example.com:42232/?auth=ea7857ad...
|
|
|
|
|
|
|
|
Notice that the URL has a big jumble of letters at the end -- this is a
|
|
|
|
secret token that the webapp uses to verify you're you. So random attackers
|
|
|
|
can't find your webapp and do bad things with it.
|
2014-03-01 02:39:06 +00:00
|
|
|
|
2014-03-01 04:31:17 +00:00
|
|
|
If you like, you can make the server run `git annex assistant --autostart`
|
|
|
|
on boot.
|
2014-03-01 02:39:06 +00:00
|
|
|
|
2014-03-01 04:31:17 +00:00
|
|
|
To automate opening the remote server's webapp in your local browser,
|
|
|
|
just run this:
|
2014-03-01 02:39:06 +00:00
|
|
|
|
2014-03-01 04:31:17 +00:00
|
|
|
firefox "$(ssh host.example.com git annex webapp)"
|