Self hosting Cloud9 IDE

Разработка с Cloud9 IDE

Установка и настройка облачной IDE Cloud9 от Amazon на собственном сервере с Ubuntu. Редатирование и разработка проектов через обычный браузер.

Вводные

  • Ubuntu LTS (>= 16.04/18.04)
  • Node.js >=8.x

минимальная подготовка

sudo apt update -qq && sudo apt upgrade
sudo apt-get install curl git -y

Для примера создадим отдельного пользователя c9user

adduser c9user
sudo usermod -aG sudo c9user

Далее будем выполнять команды от имени поьзователя c9user

sudo su - c9user

приложение

Клонируем исходный код приложения

git clone git://github.com/c9/core.git c9sdk

и запустим установку

cd ~/c9sdk
scripts/install-sdk.sh

создадим директорию где будут храниться наши проекты

mkdir ~/projects

Протестируем установку, проверим, что всё работает как надо:

# в директории  ~/c9sdk
node server.js -p 8080 -a user:password --listen x.x.x.x -w /home/c9user/projects
  • -p 8080 - порт, на котором будет запущен сервис
  • -a user:password - имя пользователя и пароль для простой Basic Authorization
  • --listen x.x.x.x - привязка к IP адресу, что ограничить доступ можно указать 127.0.0.1, привязать ко всем IP - 0.0.0.0
  • -w /home/c9user/projects - рабочая область приложения

Для остановки сервиса CTRL+C

сервис

создадим сервис - sudo vim /lib/systemd/system/c9.service

Не забыть изменить параметры в соотвествие с вашими настройкми: user, pass, port, ip, workspace path

# Customize this file based on your bundler location, app directory, etc.
# Put this in /usr/lib/systemd/system (CentOS) or /lib/systemd/system (Ubuntu).
# Run:
# - systemctl enable c9
# - systemctl {start,stop,restart} c9
#
# This file corresponds to a single c9 process. Add multiple copies
# to run multiple processes (c9-1, c9-2, etc).
#
# See Inspeqtor's Systemd wiki page for more detail about Systemd:
# https://github.com/mperham/inspeqtor/wiki/Systemd
#
[Unit]
Description=c9
After=syslog.target network.target
 
[Service]
Type=simple
WorkingDirectory=/home/c9user/c9sdk
ExecStart=/bin/bash -lc 'node server.js -p 8080 -a user:pass --listen x.x.x.x -w /home/c9user/projects'
User=c9user
Group=c9user
UMask=0002
 
# if we crash, restart
RestartSec=1
#Restart=on-failure
Restart=always
 
# output goes to /var/log/syslog
StandardOutput=syslog
StandardError=syslog
 
# This will default to "bundler" if we don't specify it
SyslogIdentifier=c9
 
[Install]
WantedBy=multi-user.target

Включим сервис

sudo systemctl enable c9.service

# перезагрузка демона при внесении изменений
sudo systemctl daemon-reload

# перезапуск 
sudo service c9 start

Переходим по указанному в параметрах адресу: http://x.x.x.x:8080. Вот и всё!

Теперь можно вести разработку ваших проектов с использованием облачной IDE от Amazon Cloud9.