Code Monkey home page Code Monkey logo

Server

Server implements the server side of the Moln service. It provides features similar to OwnCloud including multiple user accounts, file sync, and much more.

Features

  • [DONE] Multiple user accounts
  • [DONE] Account access from devices
  • [DONE] Account access logs
  • [] File sync
  • [] Calendar sync
  • [] Address book sync
  • [DONE] Task manager

Running and Deploying

Prerequisites

  1. Install Redis.
  2. Go(only the development machine needs Go).
  3. The Foreman tool(only the development machine needs it).
  4. A clone of the server code in the GOPATH(git clone [email protected]:moln/server $GOPATH/src/github.com/moln/server).

Running a Development Server

  1. 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).

Deploying to a Production Server

  1. Configure port 80 to reroute to 3000.
  2. Create directories /mnt/www/moln, /data, /var/log/moln, and /var/log/redis.
  3. Create files /etc/init/redis-server.conf and /etc/init/moln.conf.
  4. Make sure the directories and files created above can be written to by the user.
  5. Make sure the redis-server and moln upstart process can be started and stopped by the user.
  6. 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

Notes:

  • 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.

TLS

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.

Developers

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.

License

MIT licensed, see here

Moln's Projects

cross-domain-ajax icon cross-domain-ajax

Cross domain AJAX use by postmessage, for IE6/7/8. 使用 postmessage 处理IE 6/7/8 AJAX跨域问题.

gzfextra icon gzfextra

[DEPRECATED][READ-ONLY]Global zend framework extra

ip-query icon ip-query

基于 Redis 协议的IP查询库服务

pathhandler icon pathhandler

Library for API development with Mezzio that simplifies creating operation middlewares and registering them in router

php-mysql-replication icon php-mysql-replication

Pure PHP Implementation of MySQL replication protocol. This allow you to receive event like insert, update, delete with their data and raw SQL queries.

platform-admin icon platform-admin

[DEPRECATED][READ-ONLY]此项目设计失败,新项目结构设计中,具体关注 zfegg/zfegg-admin-skeleton

postmessage icon postmessage

Simple window.postMessage, Support IE 6/7/8 (iframe)

react-ioc icon react-ioc

Use any ioc library (tsyringe, inversify, @moln/dependency-container, etc.) in react.

redash icon redash

Make Your Company Data Driven. Connect to any data source, easily visualize, dashboard and share your data.

swoole-http-client icon swoole-http-client

封装 Swoole HTTP Client, Response 响应使用psr7 对象, 支持 psr7 request .

tsdx icon tsdx

Zero-config CLI for TypeScript package development

tsyringe icon tsyringe

Lightweight dependency injection container for JavaScript/TypeScript

upload icon upload

Framework agnostic upload handler library

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.