Skip to content
This repository has been archived by the owner on Dec 14, 2023. It is now read-only.

Commit

Permalink
Simplify setup of localdev (#70)
Browse files Browse the repository at this point in the history
* simplfy docker
remove testdata scripts

* set node_env

* add redis

* add ability to restore data

* update to node 8

* Fixed anon_db script for dojo leads
  • Loading branch information
butlerx authored and DanielBrierton committed Feb 9, 2018
1 parent 69a1ee7 commit ed0a89c
Show file tree
Hide file tree
Showing 18 changed files with 160 additions and 2,316 deletions.
2 changes: 0 additions & 2 deletions .eslintignore

This file was deleted.

33 changes: 0 additions & 33 deletions .eslintrc.js

This file was deleted.

2 changes: 2 additions & 0 deletions .gitignore
Expand Up @@ -5,3 +5,5 @@ workspace-zen/*
!workspace-zen/.gitkeep
npm-debug.log
*.log*
cd-db/dumps/*
!cd-db/dumps/.gitkeep
12 changes: 0 additions & 12 deletions Dockerfile

This file was deleted.

11 changes: 7 additions & 4 deletions cd-db/Dockerfile
@@ -1,4 +1,7 @@
FROM postgres:alpine
MAINTAINER butlerx <butlerx@notthe.cloud>

ADD setup_zen.sh /docker-entrypoint-initdb.d/10-setup_zen.sh
FROM postgres:9-alpine
LABEL maintainer="butlerx <cian@coderdojo.org>"
RUN mkdir -p /db && chown -R postgres:postgres /db
VOLUME /db
COPY setup_zen.sql /docker-entrypoint-initdb.d/10-setup_zen.sql
COPY restore_db.sh /docker-entrypoint-initdb.d/20-restore_db.sh
COPY anon_db.sql /docker-entrypoint-initdb.d/30-anon_db.sql
41 changes: 41 additions & 0 deletions cd-db/anon_db.sql
@@ -0,0 +1,41 @@
\c cp-users-development
UPDATE sys_user SET
salt='6a43b460',
pass='8d8537a931321e9c1fbcc493da36b09888338d4615341016498fd40926b7e115f77c8676f6c06e391415265688658f1d8380bc6f9b45cd33572479e04ec1246f';
UPDATE sys_user set email = 'testmail+user' || id || '@example.com';
UPDATE sys_user set nick = email;
UPDATE sys_user SET
nick = 'NameyFace' ,
name = 'Namey McNameFace' ,
first_name = 'Namey' ,
last_name = 'McNameFace' ,
phone = translate(phone, '0123456789','9999999999');
TRUNCATE cd_oauth2;
UPDATE cd_profiles SET name = 'Namey McNameFace';
UPDATE cd_profiles SET email = 'testmail+user' || user_id || '@example.com';
UPDATE cd_profiles SET alias = 'NameyFace';
UPDATE cd_profiles SET
address = '123 Fake St., Over There Ave., End of the Road',
phone = translate(phone, '0123456789','9999999999');
UPDATE cd_profiles SET avatar = NULL, parent_invites = NULL, ninja_invites = NULL, twitter = NULL, linkedin = NULL;
UPDATE sys_login SET email = 'testmail+user' || sys_login.user || '@example.com', token = NULL;
UPDATE sys_login SET nick = email;
UPDATE sys_reset SET nick = 'testmail+user' || sys_reset.user || '@example.com';
UPDATE cd_agreements SET full_name='Namey McNameFace', ip_address='127.0.0.1';

\c cp-dojos-development
UPDATE cd_dojoleads SET application = jsonb_set(application::jsonb, '{champion, email}'::text[], ('"testmail+user' || user_id || '@example.com"')::jsonb);
UPDATE cd_dojoleads SET application = jsonb_set(application::jsonb, '{champion, twitter}'::text[], '"example"');
UPDATE cd_dojoleads SET application = jsonb_set(application::jsonb, '{champion, firstName}'::text[], '"Namey"');
UPDATE cd_dojoleads SET application = jsonb_set(application::jsonb, '{champion, lastName}'::text[], '"McNameFace"');
UPDATE cd_dojoleads SET application = jsonb_set(application::jsonb, '{champion, dob}'::text[], '"1980-01-01T00:00:00.000Z"');
UPDATE cd_dojoleads SET application = jsonb_set(application::jsonb, '{champion, phone}'::text[], '"1234567890"');
UPDATE cd_dojoleads SET application = jsonb_set(application::jsonb, '{champion, linkedIn}'::text[], '"linkedIn"');
UPDATE cd_dojoleads SET application = jsonb_set(application::jsonb, '{charter, fullName}'::text[], '"Namey McNameFace"');
UPDATE cd_dojoleads SET email = 'testmail+user' || user_id || '@example.com';
UPDATE cd_dojos SET creator_email = 'testmail+user' || creator || '@example.com';
UPDATE cd_dojos SET user_invites = NULL;

\c cp-events-development
UPDATE cd_applications SET name = 'test' || user_id || 'user';
UPDATE cd_applications SET notes = 'Some notes about the application' WHERE notes != '';
Empty file added cd-db/dumps/.gitkeep
Empty file.
21 changes: 21 additions & 0 deletions cd-db/restore_db.sh
@@ -0,0 +1,21 @@
#!/usr/bin/env sh

set -e

# To restore the a database place the tar.gz in the dump folder
# they should be called users.tar.gz, dojos.tar.gz and events.tar.gz

restore() {
repo=$1
DUMP="/db/${repo}.tar.gz"
if [ -f "$DUMP" ]; then
echo restoring "$DUMP"
mkdir -p /db/"$repo"
tar xvf "$DUMP" -C /db/"$repo"
pg_restore -c --if-exists -w -d "cp-${repo}-development" -U platform /db/"$repo"/backup_dump
fi
}

restore users
restore dojos
restore events
8 changes: 0 additions & 8 deletions cd-db/setup_zen.sh

This file was deleted.

4 changes: 4 additions & 0 deletions cd-db/setup_zen.sql
@@ -0,0 +1,4 @@
create user platform with superuser password 'QdYx3D5y';
CREATE DATABASE "cp-dojos-development" OWNER platform;
CREATE DATABASE "cp-users-development" OWNER platform;
CREATE DATABASE "cp-events-development" OWNER platform;
145 changes: 54 additions & 91 deletions docker-compose.yml
@@ -1,21 +1,23 @@
---
version: '3'
version: '3.3'
services:
# Development Database
db:
image: coderdojo/cp-local-development:database
build: ./cd-db
restart: always
volumes:
- pg-data:/data/postgres
- ./cd-db/dumps:/db
environment:
- POSTGRES_PASSWORD=QdYx3D5y

# Development serivces
kue:
image: redis:3-alpine
restart: always
zen:
image: coderdojo/cp-zen-platform:dev
image: node:carbon
working_dir: /usr/src/app
ports:
- '8000:8000'
env_file: ./workspace-zen/cp-zen-platform/web/config/development.env
command: yarn dev
depends_on:
- users
- dojos
Expand All @@ -31,152 +33,113 @@ services:
- CD_BADGES=badges
- CD_EVENTBRITE=eventbrite
- CD_ORGANISATIONS=organisations
- NODE_ENV=development
volumes:
- ./workspace-zen/cp-translations:/usr/src/cp-translations:Z
- ./workspace-zen/cp-zen-platform:/usr/src/app:Z
- ./workspace-zen/cp-zen-frontend:/usr/src/cp-zen-frontend:Z
- ./workspace-zen/cp-zen-frontend:/usr/src/app/node_modules/cp-zen-frontend:Z
- ./workspace-zen/cp-translations:/usr/src/app/node_modules/cp-translations:Z
frontend:
image: coderdojo/cp-zen-frontend
image: node:carbon
command: yarn dev
working_dir: /usr/src/app
environment:
- NODE_ENV=development
volumes:
- ./workspace-zen/cp-translations:/usr/src/cp-translations:Z
- ./workspace-zen/cp-translations:/usr/src/app/node_modules/cp-translations:Z
- ./workspace-zen/cp-zen-frontend:/usr/src/app:Z
dojos:
image: coderdojo/cp-dojos-service:dev
image: node:carbon
env_file: ./workspace-zen/cp-dojos-service/config/development.env
working_dir: /usr/src/app
command: yarn dev
environment:
- NODE_ENV=development
- CD_USERS=users
- CD_EVENTS=events
- CD_BADGES=badges
- CD_ORGANISATIONS=organisations
- POSTGRES_HOST=db
- ZENTEST=false
- KUE_REQUIRED='true'
- KUE_HOST=kue
depends_on:
- db
- kue
volumes:
- ./workspace-zen/cp-translations:/usr/src/cp-translations:Z
- ./workspace-zen/cp-translations:/usr/src/app/node_modules/cp-translations:Z
- ./workspace-zen/cp-dojos-service:/usr/src/app:Z
users:
image: coderdojo/cp-users-service:dev
image: node:carbon
env_file: ./workspace-zen/cp-users-service/config/development.env
working_dir: /usr/src/app
command: yarn dev
environment:
- NODE_ENV=development
- CD_DOJOS=dojos
- CD_EVENTS=events
- CD_BADGES=badges
- POSTGRES_HOST=db
- ZENTEST=false
depends_on:
- db
volumes:
- ./workspace-zen/cp-translations:/usr/src/cp-translations:Z
- ./workspace-zen/cp-translations:/usr/src/app/node_modules/cp-translations:Z
- ./workspace-zen/cp-users-service:/usr/src/app:Z
events:
image: coderdojo/cp-events-service:dev
image: node:carbon
env_file: ./workspace-zen/cp-events-service/config/development.env
working_dir: /usr/src/app
command: yarn dev
environment:
- CD_USERS=users
- CD_DOJOS=dojos
- CD_BADGES=badges
- NODE_ENV=development
- POSTGRES_HOST=db
- ZENTEST=false
- KUE_REQUIRED='true'
- KUE_HOST=kue
depends_on:
- db
- kue
volumes:
- ./workspace-zen/cp-translations:/usr/src/cp-translations:Z
- ./workspace-zen/cp-translations:/usr/src/app/node_modules/cp-translations:Z
- ./workspace-zen/cp-events-service:/usr/src/app:Z
badges:
image: coderdojo/cp-badges-service:dev
image: node:carbon
working_dir: /usr/src/app
env_file: ./workspace-zen/cp-badges-service/config/development.env
command: yarn dev
environment:
- CD_USERS=users
- CD_DOJOS=dojos
- CD_EVENTS=events
- NODE_ENV=development
volumes:
- ./workspace-zen/cp-translations:/usr/src/cp-translations:Z
- ./workspace-zen/cp-translations:/usr/src/app/node_modules/cp-translations:Z
- ./workspace-zen/cp-badges-service:/usr/src/app:Z
eventbrite:
image: coderdojo/cp-eventbrite-service:dev
image: node:carbon
command: yarn dev
env_file: ./workspace-zen/cp-eventbrite-service/config/development.env
working_dir: /usr/src/app
environment:
- CD_DOJOS=dojos
- CD_EVENTS=events
- NODE_ENV=development
volumes:
- ./workspace-zen/cp-translations:/usr/src/cp-translations:Z
- ./workspace-zen/cp-translations:/usr/src/app/node_modules/cp-translations:Z
- ./workspace-zen/cp-eventbrite-service:/usr/src/app:Z
organisations:
image: coderdojo/cp-organisations-service:dev
image: node:carbon
command: yarn dev
working_dir: /usr/src/app
env_file: ./workspace-zen/cp-organisations-service/config/development.env
environment:
- CD_USERS=users
- NODE_ENV=development
- POSTGRES_HOST=db
depends_on:
- db
volumes:
- ./workspace-zen/cp-translations:/usr/src/cp-translations:Z
- ./workspace-zen/cp-translations:/usr/src/app/node_modules/cp-translations:Z
- ./workspace-zen/cp-organisations-service:/usr/src/app:Z

# Test Data services for setup
testdata:
image: coderdojo/cp-local-development
environment:
- CD_USERS=test-users
- CD_DOJOS=test-dojos
- CD_EVENTS=test-events
- ZENTEST=false
- POSTGRES_PASSWORD=QdYx3D5y
- POSTGRES_HOST=db
- POSTGRES_USERNAME
depends_on:
- test-users
- test-dojos
- test-events
test-events:
image: coderdojo/cp-events-service:latest
command: npm run testdata
env_file: ./workspace-zen/cp-events-service/config/development.env
expose:
- '11306'
environment:
- POSTGRES_HOST=db
- CD_EVENTS=events
- CD_USERS=users
- CD_DOJOS=dojos
- ZENTEST=false
depends_on:
- events
volumes:
- ./workspace-zen/cp-events-service/test/fixtures:/usr/src/app/test/fixtures:Z
test-users:
image: coderdojo/cp-users-service:latest
command: npm run testdata
env_file: ./workspace-zen/cp-users-service/config/development.env
expose:
- '11303'
environment:
- POSTGRES_HOST=db
- CD_USERS=users
- CD_EVENTS=events
- CD_DOJOS=dojos
- ZENTEST=false
depends_on:
- users
volumes:
- ./workspace-zen/cp-users-service/test/fixtures:/usr/src/app/test/fixtures:Z
test-dojos:
image: coderdojo/cp-dojos-service:latest
command: npm run testdata
env_file: ./workspace-zen/cp-dojos-service/config/development.env
expose:
- '11301'
environment:
- POSTGRES_HOST=db
- CD_DOJOS=dojos
- CD_USERS=users
- CD_EVENTS=events
- ZENTEST=false
depends_on:
- dojos
- organisations
volumes:
- ./workspace-zen/cp-dojos-service/test/fixtures:/usr/src/app/test/fixtures:Z
volumes:
pg-data:
4 changes: 0 additions & 4 deletions localdev.js

This file was deleted.

0 comments on commit ed0a89c

Please sign in to comment.