Server implements the server side of the Moln service. It provides features similar to OwnCloud including multiple user accounts, file sync, and much more.
- [DONE] Multiple user accounts
- [DONE] Account access from devices
- [DONE] Account access logs
- [] File sync
- [] Calendar sync
- [] Address book sync
- [DONE] Task manager
- Install Redis.
- Go(only the development machine needs Go).
- The Foreman tool(only the development machine needs it).
- A clone of the server code in the GOPATH(
git clone [email protected]:moln/server $GOPATH/src/github.com/moln/server
).
- Run the dev script
./dev
.
This script will build the server, create any directories needed, and start the servers with the Foreman tool(including the Redis server).
- Configure port 80 to reroute to 3000.
- Create directories
/mnt/www/moln
,/data
,/var/log/moln
, and/var/log/redis
. - Create files
/etc/init/redis-server.conf
and/etc/init/moln.conf
. - Make sure the directories and files created above can be written to by the user.
- Make sure the
redis-server
andmoln
upstart process can be started and stopped by the user. - Run the deploy script
./deploy <user@host...>
.
This script will do the following for each given server:
- build the binary for the servers arch(on the development machine)
- copy the binary and the config directory to appropriate place
- copy the upstart scripts to the appropriate place
- restart redis-server, and moln upstart processes
- The servers being deployed to are assumed to be Unix based.
- When running in production mode on Windows, Redis connects to a UNIX Socket; so you may encounter errors.
So the deployment process above is for standard HTTP, if you want to secure your servers traffic,
add the following to your production configuration(config/production.json
).
{
"TLS": {
"Key": "/path/to/server.key",
"Cert": "/path/to/server.crt"
}
}
Then instead of redirecting port 80's traffic to port 3000, redirect port 443.
If you're interested in how the API works, or interested in building or contributing to a Moln client you should read the API.md file included.
MIT licensed, see here