Keep more development environment options

This commit is contained in:
Mouse Reeve 2020-03-27 13:04:06 -07:00
parent b97006d43c
commit 0c766f9867
4 changed files with 46 additions and 12 deletions

View file

@ -18,8 +18,8 @@ FEDIREADS_DATABASE_BACKEND=postgres
MEDIA_ROOT="images/"
POSTGRES_PASSWORD="fedireads"
POSTGRES_USER="postgres"
POSTGRES_DB="postgres"
POSTGRES_USER="fedireads"
POSTGRES_DB="fedireads"
RABBITMQ_DEFAULT_USER=rabbit
RABBITMQ_DEFAULT_PASS=changeme

View file

@ -45,19 +45,42 @@ This project is still in its very early stages, but these are the higher-level f
But this isn't a set in stone, unchangeable list, so if you have ideas about how this could be tweaked, changed, or improved, please open an issue and start a conversation about it.
## Setting up the developer environment
You will need postgres installed and running on your computer.
Install docker and run:
``` bash
docker-compose build
docker-compose up
docker-compose exec web python manage.py migrate
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
createdb fedireads
```
Create the psql user in `psql fedireads`:
``` psql
CREATE ROLE fedireads WITH LOGIN PASSWORD 'fedireads';
GRANT ALL PRIVILEGES ON DATABASE fedireads TO fedireads;
```
Initialize the database (or, more specifically, delete the existing database, run migrations, and start fresh):
``` bash
./rebuilddb.sh
```
This creates two users, `mouse` with password `password123` and `rat` with password `ratword`.
And go to the app at `localhost:8000`
For most testing, you'll want to use ngrok. Remember to set the DOMAIN in `.env` to your ngrok domain.
### Docker
You can also run the application in a docker container. You'll have to install the Docker and docker-compose:
```bash
docker-compose build
docker-compose up
docker-compose exec web python manage.py migrate
```
## Project structure
All the url routing is in `fedireads/urls.py`. This includes the application views (your home page, user page, book page, etc), application endpoints (things that happen when you click buttons), and federation api endpoints (inboxes, outboxes, webfinger, etc).

View file

@ -5,7 +5,7 @@ services:
image: postgres
env_file: .env
volumes:
- pgdata:/var/lib/posgresql/data
- pgdata:/var/lib/postgresql/data
networks:
- main
web:

View file

@ -76,17 +76,28 @@ WSGI_APPLICATION = 'fedireads.wsgi.application'
# Database
# https://docs.djangoproject.com/en/2.0/ref/settings/#databases
DATABASES = {
'default': {
FEDIREADS_DATABASE_BACKEND = env('FEDIREADS_DATABASE_BACKEND', 'postgres')
FEDIREADS_DBS = {
'postgres': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'postgres',
'USER': 'postgres',
'PASSWORD': '%s' % env('POSTGRES_PASSWORD', 'fedireads'),
'NAME': env('POSTGRES_DB', 'fedireads'),
'USER': env('POSTGRES_USER', 'fedireads'),
'PASSWORD': env('POSTGRES_PASSWORD', 'fedireads'),
'HOST': 'db',
'PORT': 5432
},
'sqlite': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'fedireads.db')
}
}
DATABASES = {
'default': FEDIREADS_DBS[FEDIREADS_DATABASE_BACKEND]
}
LOGIN_URL = '/login/'
AUTH_USER_MODEL = 'fedireads.User'