3.5 KiB
3.5 KiB
skillBox
Sources
Development
Server
- Install pipenv
- Create virtualenv in install dependencies
pipenv --python 3.6 install --dev - Create PostgreSQL database & user
- Install Heroku cli, run
heroku loginandheroku git:remote -a skillbox-hep - Create .env in
serverfile withSECRET_KEYandDATABASE_URL(or copy the existing .env.example file) - Migrate databases:
pipenv run python manage.py migrate - Create super user:
pipenv run python manage.py createsuperuser - Run:
pipenv run python manage.py runserver - Dummy data:
pipenv run python manage.py dummy_data(restart the development server afterwards) Recreates the db with test data and new superuser: test/test
Dockerize DB
- To dockerize the DB, after installing docker, run the following command:
docker run --name skillboxdb -d -p 5432:5432 -e POSTGRES_PASSWORD=skillbox -e POSTGRES_USER=skillbox -e POSTGRES_DB=skillbox postgres:alpine
- After a reboot, start the container again with
docker start skillboxdb
Notes
DEBUG=Trueenables the debug middleware http://docs.graphene-python.org/projects/django/en/latest/debug/
Client
# install dependencies
npm install --prefix client
# serve with hot reload at localhost:3000
npm run dev --prefix client
# build
npm run build --prefix client
# build for production with minification
export NODE_ENV=production && npm install --prefix client && npm run build --prefix client
After running npm run dev login to the Django admin view on the same domain as the webpack dev server is running.
Example: The client runs on localhost:8080 and Django on localhost:8000.
This way you will have a session and a csrf cookie set and the apollo client will
be able to make requests.
Production Build
Urls
(trailing slashes are required)
- Admin interface: http://127.0.0.1:8000/guru/
- Cms interface: http://127.0.0.1:8000/cms/
- GraphQL Interface: http://localhost:8000/api/graphiql/
Heroku
heroku run python server/manage.py <command> --app <appname>
Rollabck
After doing a rollback under https://data.heroku.com/
heroku pg:info --app=<appname>
Change DATABASE URL (e.g after a rollback)
heroku pg:promote HEROKU_POSTGRESQL_PINK
Backup
heroku pg:backups:capture --app <appname>
heroku pg:backups:url b001 --app <appname>
AWS
- Create user with API Access and add
access key idandaccess keyto.envand setUSE_AWS=True - Create S3 Bucket in location EU Ireland
Change bucket Permissions / Bucket Policy
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "PublicReadForGetBucketObjects",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::<bucket-name>/*"
},
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"AWS": "<user arn>"
},
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::<bucket-name>/*",
"arn:aws:s3:::<bucket-name>"
]
}
]
}