From 0cfcbae8189353a1ad29bafbd520e6965290f367 Mon Sep 17 00:00:00 2001 From: Jan Keromnes Date: Wed, 30 Jan 2019 08:39:42 +0000 Subject: Add automated dev setup using Gitpod --- .github/CONTRIBUTING.md | 10 ++++++++-- .gitpod.yml | 16 ++++++++++++++++ client/proxy.config.json | 10 ++++++++++ client/src/environments/environment.hmr.ts | 2 +- scripts/watch/client.sh | 2 +- support/docker/gitpod/Dockerfile | 11 +++++++++++ support/docker/gitpod/setup_postgres.sql | 6 ++++++ 7 files changed, 53 insertions(+), 4 deletions(-) create mode 100644 .gitpod.yml create mode 100644 client/proxy.config.json create mode 100644 support/docker/gitpod/Dockerfile create mode 100644 support/docker/gitpod/setup_postgres.sql diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index f0a4043ac..b3847b8d7 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -57,8 +57,8 @@ before you start working on them :). First, you should use a server or PC with at least 4GB of RAM. Less RAM may lead to crashes. -Make sure that you have followed -[the steps](/support/doc/dependencies.md) +Make sure that you have followed +[the steps](/support/doc/dependencies.md) to install the dependencies. Then clone the sources and install node modules: @@ -93,6 +93,12 @@ $ sudo -u postgres psql -c "CREATE EXTENSION unaccent;" peertube_dev In dev mode, administrator username is **root** and password is **test**. +### Online development + +You can get a complete PeerTube development setup with Gitpod, a free one-click online IDE for GitHub: + +[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/Chocobozzz/PeerTube) + ### Server side You can find a documentation of the server code/architecture [here](/support/doc/development/server/code.md). diff --git a/.gitpod.yml b/.gitpod.yml new file mode 100644 index 000000000..c2f2fa464 --- /dev/null +++ b/.gitpod.yml @@ -0,0 +1,16 @@ +image: + file: support/docker/gitpod/Dockerfile +ports: +- port: 3000 + onOpen: open-preview +- port: 5432 + onOpen: ignore +- port: 6379 + onOpen: ignore +- port: 9000 + onOpen: ignore +tasks: +- command: redis-server +- before: export NODE_CONFIG="{\"import\":{\"videos\":{\"torrent\":{\"enabled\":false}}},\"webserver\":{\"hostname\":\"$(gp url 3000 | cut -d/ -f3)\",\"port\":\"443\",\"https\":true}}" + init: yarn install --pure-lockfile + command: npm run dev \ No newline at end of file diff --git a/client/proxy.config.json b/client/proxy.config.json new file mode 100644 index 000000000..d1f393672 --- /dev/null +++ b/client/proxy.config.json @@ -0,0 +1,10 @@ +{ + "/api": { + "target": "http://localhost:9000", + "secure": false + }, + "/static": { + "target": "http://localhost:9000", + "secure": false + } +} diff --git a/client/src/environments/environment.hmr.ts b/client/src/environments/environment.hmr.ts index 20e2b8fcd..853e20803 100644 --- a/client/src/environments/environment.hmr.ts +++ b/client/src/environments/environment.hmr.ts @@ -1,5 +1,5 @@ export const environment = { production: false, hmr: true, - apiUrl: 'http://localhost:9000' + apiUrl: '' } diff --git a/scripts/watch/client.sh b/scripts/watch/client.sh index f3799d2e9..1d6b8c2aa 100755 --- a/scripts/watch/client.sh +++ b/scripts/watch/client.sh @@ -4,4 +4,4 @@ set -eu cd client -npm run ng -- serve --hmr --configuration hmr --host 0.0.0.0 --disable-host-check --port 3000 +npm run ng -- serve --proxy-config proxy.config.json --hmr --configuration hmr --host 0.0.0.0 --disable-host-check --port 3000 diff --git a/support/docker/gitpod/Dockerfile b/support/docker/gitpod/Dockerfile new file mode 100644 index 000000000..435370dc4 --- /dev/null +++ b/support/docker/gitpod/Dockerfile @@ -0,0 +1,11 @@ +FROM gitpod/workspace-postgres + +# Install PeerTube's dependencies. +RUN sudo apt-get update -q && sudo apt-get install -qy \ + ffmpeg \ + openssl \ + redis-server + +# Set up PostgreSQL. +COPY --chown=gitpod:gitpod setup_postgres.sql /tmp/ +RUN pg_start && psql -h localhost -d postgres --file=/tmp/setup_postgres.sql diff --git a/support/docker/gitpod/setup_postgres.sql b/support/docker/gitpod/setup_postgres.sql new file mode 100644 index 000000000..0937f9d19 --- /dev/null +++ b/support/docker/gitpod/setup_postgres.sql @@ -0,0 +1,6 @@ +create database peertube_dev; +create user peertube password 'peertube'; +grant all privileges on database peertube_dev to peertube; +\c peertube_dev +CREATE EXTENSION pg_trgm; +CREATE EXTENSION unaccent; -- cgit v1.2.3