forked from mirrors/bookwyrm
Keep more development environment options
This commit is contained in:
parent
b97006d43c
commit
0c766f9867
4 changed files with 46 additions and 12 deletions
|
@ -18,8 +18,8 @@ FEDIREADS_DATABASE_BACKEND=postgres
|
||||||
MEDIA_ROOT="images/"
|
MEDIA_ROOT="images/"
|
||||||
|
|
||||||
POSTGRES_PASSWORD="fedireads"
|
POSTGRES_PASSWORD="fedireads"
|
||||||
POSTGRES_USER="postgres"
|
POSTGRES_USER="fedireads"
|
||||||
POSTGRES_DB="postgres"
|
POSTGRES_DB="fedireads"
|
||||||
|
|
||||||
RABBITMQ_DEFAULT_USER=rabbit
|
RABBITMQ_DEFAULT_USER=rabbit
|
||||||
RABBITMQ_DEFAULT_PASS=changeme
|
RABBITMQ_DEFAULT_PASS=changeme
|
||||||
|
|
33
README.md
33
README.md
|
@ -45,18 +45,41 @@ 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.
|
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
|
## Setting up the developer environment
|
||||||
|
You will need postgres installed and running on your computer.
|
||||||
|
|
||||||
|
``` bash
|
||||||
|
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:
|
||||||
|
|
||||||
Install docker and run:
|
|
||||||
```bash
|
```bash
|
||||||
docker-compose build
|
docker-compose build
|
||||||
docker-compose up
|
docker-compose up
|
||||||
docker-compose exec web python manage.py migrate
|
docker-compose exec web python manage.py migrate
|
||||||
```
|
```
|
||||||
|
|
||||||
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.
|
|
||||||
|
|
||||||
|
|
||||||
## Project structure
|
## 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).
|
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).
|
||||||
|
|
|
@ -5,7 +5,7 @@ services:
|
||||||
image: postgres
|
image: postgres
|
||||||
env_file: .env
|
env_file: .env
|
||||||
volumes:
|
volumes:
|
||||||
- pgdata:/var/lib/posgresql/data
|
- pgdata:/var/lib/postgresql/data
|
||||||
networks:
|
networks:
|
||||||
- main
|
- main
|
||||||
web:
|
web:
|
||||||
|
|
|
@ -76,17 +76,28 @@ WSGI_APPLICATION = 'fedireads.wsgi.application'
|
||||||
# Database
|
# Database
|
||||||
# https://docs.djangoproject.com/en/2.0/ref/settings/#databases
|
# https://docs.djangoproject.com/en/2.0/ref/settings/#databases
|
||||||
|
|
||||||
DATABASES = {
|
FEDIREADS_DATABASE_BACKEND = env('FEDIREADS_DATABASE_BACKEND', 'postgres')
|
||||||
'default': {
|
|
||||||
|
FEDIREADS_DBS = {
|
||||||
|
'postgres': {
|
||||||
'ENGINE': 'django.db.backends.postgresql_psycopg2',
|
'ENGINE': 'django.db.backends.postgresql_psycopg2',
|
||||||
'NAME': 'postgres',
|
'NAME': env('POSTGRES_DB', 'fedireads'),
|
||||||
'USER': 'postgres',
|
'USER': env('POSTGRES_USER', 'fedireads'),
|
||||||
'PASSWORD': '%s' % env('POSTGRES_PASSWORD', 'fedireads'),
|
'PASSWORD': env('POSTGRES_PASSWORD', 'fedireads'),
|
||||||
'HOST': 'db',
|
'HOST': 'db',
|
||||||
'PORT': 5432
|
'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/'
|
LOGIN_URL = '/login/'
|
||||||
AUTH_USER_MODEL = 'fedireads.User'
|
AUTH_USER_MODEL = 'fedireads.User'
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue