Create a README file
[armadillo.git] / README.md
1 # Armadillo File Manager
2
3 Armadillo is a web-based file manager. It allows you to list, move, rename,
4 delete, and download files through your browser. It's the ideal solution for a
5 home media center, allowing you to manage your files from your couch.
6
7 ## Installation
8
9 Installation requires the [Go runtime](http://golang.org/doc/install) because
10 there is no binary distribution yet.
11
12 After installing Go, clone this repository and type `make`:
13
14 $ git clone https://github.com/rsesek/armadillo
15 $ make
16
17 # Or to minify the JavaScript:
18
19 $ make release
20
21 If you have Java installed, you can use the
22 [Closure Compiler](https://developers.google.com/closure/compiler/) to minify
23 and compile the frontend JavaScript code by typing `make release`.
24
25 After building, you will have a binary named `armadillo`.
26
27 ## Configuration
28
29 Armadillo can either be configured using command line parameters, or via a JSON
30 configuration file in `~/.armadillo`. The two important directives are
31 "JailRoot" and "Port":
32
33 {
34 # No operations will be performed outside of this directory. Everything in
35 # this directory and below will be served by Armadillo.
36 "JailRoot": "/path/to/root",
37
38 # The port on which to run Armadillo.
39 "Port": 8084
40 }
41
42 You can specify these values on the command line. See `armadillo -help` for
43 more details.
44
45 ## Security
46
47 Armadillo does not fork itself into a daemon process; it runs under the user
48 who started t. This is because it needs read and write permission to the file
49 system.
50
51 **NOTE: Armadillo provides no form of authorization or authentication. It is
52 recommended to either only run it on your local network, or to place it behind
53 a reverse web proxy like [nginx](http://nginx.org) or
54 [Apache](http://httpd.apache.org) to provide security.** Configuring those
55 servers is beyond the scope of this document.
56
57 ## Running
58
59 On Mac OS X, the recommended way to start Armadillo on launch is to use
60 launchd. Create a file called
61 `~/Library/LaunchAgents/org.bluestatic.armadillo.plist` with this content:
62
63 <?xml version="1.0" encoding="UTF-8"?>
64 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
65 <plist version="1.0">
66 <dict>
67 <key>Label</key>
68 <string>org.bluestatic.armadillo</string>
69 <key>ProgramArguments</key>
70 <array>
71 <string>/Users/your_name/Projects/armadillo/armadillo</string>
72 <string>-config=/path/to/config.json</string>
73 </array>
74 <key>KeepAlive</key>
75 <false/>
76 <key>RunAtLoad</key>
77 <true/>
78 </dict>
79 </plist>
80
81 Then type:
82
83 launchctl load ~/Library/LaunchAgents/org.bluestatic.armadillo.plist
84
85 And armadillo will start serving with the configuration file you specified in
86 the plist. The next time you log in, armadillo will run automatically.