Coder Social home page Coder Social logo

odison / sandstorm Goto Github PK

View Code? Open in Web Editor NEW

This project forked from sandstorm-io/sandstorm

0.0 2.0 0.0 7.5 MB

Personal Cloud Sandbox

Home Page: https://sandstorm.io

License: Other

Makefile 0.65% Shell 4.88% Ruby 0.13% Perl 0.66% Perl 6 0.02% Python 0.54% JavaScript 35.63% CSS 5.76% HTML 5.04% C++ 36.37% C 0.75% Cap'n Proto 9.58%

sandstorm's Introduction

Sandstorm

Sandstorm makes it easy to run your own server.

Use Sandstorm to install apps to create documents, spreadsheets, blogs, git repos, task lists, and more as easily as you'd install apps on your phone.

Sandstorm is open source and can be installed on any x86-64 Linux system.

Caveats

Sandstorm is in early beta. Lots of features are not done yet, and more review needs to be done before relying on it for mission-critical tasks. That said, we use it ourselves to get work done every day, and we hope you'll find it useful as well.

Installing the Easy Way

Prerequisite: Linux x86_64, with kernel version 3.13 or later.

To install on your own Linux machine, do:

curl https://install.sandstorm.io | bash

Or, if you don't like piping directly to shell, download first:

curl https://install.sandstorm.io > install.sh
bash install.sh

This will install a self-contained and (optionally) auto-updating Sandstorm bundle. It won't touch anything on your system other than your chosen installation directory, optionally installing an init script, and placing two symlinks (spk and sandstorm) under /usr/local/bin.

Note: If installing Sandstorm under LXC / Docker, you will need to choose the option to install as a non-root user. Unfortunately, this means the development tools will not work. This is due to the interaction between Sandstorm and Docker's use of Linux containerization features and missing features in the Linux kernel which we hope will be fixed eventually. For non-development purposes, Sandstorm should run just fine under Docker.

Tips

  • If you want to run on port 80, we recommend setting up an nginx reverse proxy rather than trying to get Node to open port 80 directly. Make sure to configure WebSocket forwarding, which requires nginx 1.3.13 or better.
  • If you want SSL, then you will definitely need an nginx proxy (or something equivalent). You will further need to use a wildcard certificate.

For reference, nginx-example.conf contains an example nginx configuration.

Installing from Source (the hard way)

Prerequisites

Please install the following:

  • Linux x86_64, with kernel version 3.13 or later
  • C and C++ standard libraries and headers
  • GNU Make
  • libcap with headers
  • xz
  • zip
  • unzip
  • strace
  • curl
  • gpg
  • discount (markdown parser)
  • git
  • Clang compiler version 3.4 or better
  • Meteor

On Debian or Ubuntu, you should be able to get all these with:

sudo apt-get install build-essential libcap-dev xz-utils zip \
    unzip strace curl clang discount git
curl https://install.meteor.com/ | sh

Building / installing the binaries

Build the Sandstorm bundle:

make

(Note: You should not use -j, as we only use make as a meta-build system. The major components will utilize all CPU cores.)

Install it:

make install

This installs your locally-built bundle just as would get if you had installed using https://install.sandstorm.io. You will be asked various configuration questions. If you intend to hack on Sandstorm itself, you should choose to run the server to run under your local user account (the default is to create a separate user called sandstorm).

If Sandstorm is already installed, you can update to your newly-built version like so:

make update

Note that this only works if you installed Sandstorm to run at startup. Otherwise, you will have to manually do:

/path/to/sandstorm update sandstorm-0.tar.xz

Hacking on the shell

You can run the shell (front-end) in dev mode so that you can modify it without rebuilding the whole bundle for every change. Do:

cd shell
sudo service sandstorm stop-fe
./run-dev.sh

Now connect to your local server like you normally would.

Later, when you are done hacking, you may want to restart the installed front-end:

sudo service sandstorm start-fe

Hacking on the C++

If you're going to edit C++, you will want to install Ekam, the build system used by Sandstorm. Be sure to read Ekam's wiki to understand how it works.

Once ekam is in your path, you can use make continuous in order to start an Ekam continuous build of Sandstorm. While this build is running, you can also run other make commands in a separate window. This will automatically synchronize with your continuous build rather than starting a second build.

To do a debug build, run make like:

make continuous CXXFLAGS="-g"

If you suspect you'll be hacking on Sandstorm's dependencies as well, you may want to follow the dependency symlink trick described in the Ekam readme.

How It Works

Read more in the Sandstorm documentation.

How to Package Apps

See the packaging tutorial in the Sandstorm documentation.

Contribute

Want to help? Get on the discussion group and let us know!

sandstorm's People

Contributors

kentonv avatar jparyani avatar paulproteus avatar zarvox avatar dwrensha avatar amluto avatar ocdtrekkie avatar neynah avatar vezquex avatar jamborjan avatar zined avatar stuk avatar audreyt avatar mquandalle avatar iblech avatar dgoodwin avatar dckc avatar ar-jan avatar abliss avatar cristobal23 avatar davelab6 avatar canadaduane avatar emaste avatar ewencp avatar jadeqwang avatar kanetkarster avatar vangorden avatar patrickjs avatar pwaller avatar kirjur avatar

Watchers

James Cloos avatar  avatar

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.