You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Exoframe is a self-hosted tool that allows simple one-command deployments using Docker.
11
11
12
-
## How it works
12
+
## Features
13
13
14
-
Exoframe intends to do all the heavy lifting required to build and deploy web services for you.
15
-
Exoframe uses [Docker](https://www.docker.com/) to deploy your project and [Traefik](https://traefik.io/) to proxy them to requested domain and/or paths.
16
-
All the configuration of your projects happens automatically. So after running the command, the only thing you need to do is wait a few seconds until your files have been built or deployed!
14
+
- One-command project deployment
15
+
- SSH key based auth
16
+
- Rolling updates
17
+
- Deploy tokens (e.g. to deploy from CI)
18
+
- Automated HTTPS setup via letsencrypt *
19
+
- Automated gzip compression *
20
+
- Simple access to the logs of deployments
21
+
- Docker-compose support
22
+
- Multiple deployment endpoints and multi-user support
23
+
- Simple update procedure for client, server and Traefik
24
+
- Optional automatic subdomain assignment (i.e. every deployment gets its own subdomain)
17
25
18
-
Currently, Exoframe understands and can deploy the following project types:
26
+
\* Feature provided by [Traefik](https://traefik.io/)
19
27
20
-
1. Static html based projects - will be deployed using [nginx](http://hub.docker.com/_/nginx) image
21
-
2. Node.js based projects - will be deployed using [Node:latest](https://hub.docker.com/_/node) image
22
-
3. Docker based project - will be deployed using your [Dockerfile](https://docs.docker.com/engine/reference/builder/)
23
-
4. Docker-Compose based project - will be deployed using your [docker-compose](https://docs.docker.com/compose/compose-file/) file
28
+
## Demo
24
29
25
-
To run Exoframe you need two parts - Exoframe CLI on your local machine and [Exoframe server](https://github.com/exoframejs/exoframe-server) on your server with Docker.
You can use one of the pre-packaged binaries from [releases](https://github.com/exoframejs/exoframe/releases).
30
-
Or if you have Node installed, you can install Exoframe CLI using NPM (needs at least Node 8.0):
34
+
To run Exoframe you will need two parts - Exoframe CLI and [Exoframe server](https://github.com/exoframejs/exoframe-server).
35
+
For server install instructions see [Exoframe server repository](https://github.com/exoframejs/exoframe-server).
36
+
37
+
To install Exoframe CLI you can either download one of the pre-packaged binaries from [releases page](https://github.com/exoframejs/exoframe/releases) or install it using npm (needs at least Node 8.x):
31
38
32
39
```
33
40
npm install exoframe -g
@@ -45,7 +52,7 @@ Then login using:
45
52
exoframe login
46
53
```
47
54
48
-
Then deploy your project by simply running:
55
+
Then you will be able to deploy your projects by simply running:
49
56
50
57
```
51
58
exoframe
@@ -55,16 +62,7 @@ You can find a list of all commands and options in the [docs](./docs/README.md).
55
62
56
63
## Docs
57
64
58
-
You can find project documentation [here](./docs/README.md).
59
-
60
-
## Contribute
61
-
62
-
1. Fork this repository to your own GitHub account and then clone it to your local device.
Copy file name to clipboardExpand all lines: docs/Basics.md
+29-5Lines changed: 29 additions & 5 deletions
Original file line number
Diff line number
Diff line change
@@ -1,24 +1,48 @@
1
1
# Basics
2
2
3
-
###Concepts
3
+
## Concepts
4
4
5
5
-**Project** - one or more deployments grouped together (e.g. started via docker-compose)
6
6
-**Deployment** - one and only one deployed service
7
7
8
-
### Commands
8
+
## Requirements
9
+
10
+
Exoframe CLI is not particularly demanding and consumes at max ~50mb of RAM.
11
+
Most intensive task from CLI side is packaging the project and streaming that to the server - it doesn't affect RAM usage that much and mostly relies on CPU and network.
12
+
13
+
Running Exoframe server on its own also doesn't require too much resources:
14
+
- Exoframe Server consumes ~50mb of RAM
15
+
- Traefik started along with server consumes ~60mb of RAM
16
+
17
+
Be aware though - execution of deployments will result in (1) new Docker images being built and (2) new Docker containers being started.
18
+
Depending on your project's complexity, this might require significant amount of resources during both steps resulting in failed deployments (note: if Docker goes out-of-memory during build, you will not get any specific error - just a failed deployment).
19
+
It is recommended to run Exoframe on a server with at least 1GB of RAM.
20
+
21
+
## Supported project types
22
+
23
+
Currently, Exoframe understands and can deploy the following project types:
24
+
25
+
1. Static html based projects - will be deployed using [nginx](http://hub.docker.com/_/nginx) image
26
+
2. Node.js based projects - will be deployed using [node:latest](https://hub.docker.com/_/node) image *
27
+
3. Docker based project - will be deployed using your [Dockerfile](https://docs.docker.com/engine/reference/builder/)
28
+
4. Docker-Compose based projects - will be deployed using your [docker-compose](https://docs.docker.com/compose/compose-file/) file
29
+
30
+
\* There are two things to keep in mind for Node.js projects: (1) they are started via `npm start`, so make sure you have specified start script in your `package.json`; (2) by default port 80 is exposed, so you need to make your app listen on that port. If you'd like to execute your app in any different way or expose more ports - please use Dockerfile deployment method.
31
+
32
+
## Commands
9
33
10
34
| Command | Description |
11
35
| ---------------------- | ----------- |
12
36
| deploy [path]| Deploy specified path |
13
37
| config | Generate or update project config for current path |
14
38
| list | List currently deployed projects |
15
-
| rm [id]| Remove existing deployment or project |
16
-
| log [id]| Get logs for existing deployment or project |
39
+
| rm <id>| Remove existing deployment or project |
40
+
| log <id>| Get logs for existing deployment or project |
17
41
| token [ls|rm]| Generate, list or remove deployment tokens |
18
42
| login | Login into Exoframe server |
19
43
| endpoint [url]| Selects or adds the endpoint of Exoframe server |
20
44
| rm-endpoint [url]| Removes an existing endpoint of Exoframe server |
21
-
| update [target]| Gets current versions or updates given target |
45
+
| update [target]| Gets current versions or updates given target (server | traefik | all) |
Yes. We've been using it to deploy our project since May 2017 without any issues.
6
+
7
+
## Why do I need to enter username during login?
4
8
5
9
Username is just your ID that is used to distinguish your deployments from others.
6
10
Right now you have to enter it yourself. And you will only see deployments done with that username.
7
11
Currently, more than one user can use same username (so, all users with that username will see same deployments).
8
12
9
-
### What kind of projects can I deploy with Exoframe?
10
-
11
-
Currently, Exoframe understands and can deploy the following project types:
12
-
13
-
1. static html based projects - will be deployed using [nginx](http://hub.docker.com/_/nginx) image
14
-
2. node.js based projects - will be deployed using [node:alpine](https://hub.docker.com/_/node) image
15
-
3. docker based project - will be deployed using your [Dockerfile](https://docs.docker.com/engine/reference/builder/)
16
-
4. docker-compose based project - will be deployed using your [docker-compose](https://docs.docker.com/compose/compose-file/) file
13
+
## How does it work?
17
14
15
+
Exoframe uses [Docker](https://www.docker.com/) to deploy your project and [Traefik](https://traefik.io/) to proxy requested domains and/or paths to deployed projects.
16
+
All the Docker configuration of your projects happens automatically. So after running the command, the only thing you need to do is wait a few seconds until your project have been built and deployed!
-[Introducing Exoframe (beta) — self-hosted alternative to Now.sh](https://hackernoon.com/introducing-exoframe-beta-self-hosted-alternative-to-now-sh-80643f96b84b)
6
6
-[Continuous deployment for your Node.js projects in 10 minutes with Exoframe](https://hackernoon.com/continuous-deployment-for-your-node-js-projects-in-10-minutes-with-exoframe-bdf48340c1be)
7
7
-[Simplifying Docker management with Exoframe](https://hackernoon.com/simplifying-docker-management-with-exoframe-9275e92c7406)
0 commit comments