An indexed and searchable online database of socialist and radical writings.
Staging: https://banmarchive.commonknowledge.dev/
- Django (fullstack django app, no Javascript frontend)
- Bootstrap (css an' stuff)
- Wagtail (CMS, administration, editor workflows and storage)
- Webpack (asset pipeline)
- PostgreSQL (Database & search index)
- Digital Ocean App Platform (Compute, database hosting, object storage & CDN)
- Make sure you have Docker, VSCode, and the Remote Development extension installed.
- Open the repository in VSCode
- You should get a notification asking if you want to 'reopen in container'. Say yes.
- If you don't get one, you should be able to 'reopen in container' via the command pallette
- If you can't see an option to do that, make sure you have the Remote Development extension installed
- Wait for the dev container to build.
- Check your terminal and respond to any setup prompts it asks for
- Search for banmarchive/settings/local.py on lastpass and paste its contents into the corresponding local file
- Use vscode's 'run' command (usually aliased to F5) to run the app.
- Make sure you use the 'App' configuration, which will start both the django app and the frontend build pipeline.
- Go to localhost:8000/admin
- Use the 'import' option on the left to seed the archive with content from the staging site.
Figure it out for yourself based on the .devcontainer dockerfile and write it up here ;)
This repository has a development dockerfile (.devcontainer/Dockerfile) and a production one (./Dockerfile).
They both run .bin in ./.bin to configure their environments and install dependencies:
- Base container configuration, which is run infrequently (installing apt packages, etc) should be configured in prepare.sh.
- Frequently-run .bin (installing pip packages, etc) should go in install.sh. The difference between these is that changing prepare.sh triggers a full rebuild of the development container, whereas install.sh is only run after the container is built.
- build.sh is the last thing run on deploy to production
- New Reasoner's issues are divided into sections. Information about sections has not been migrated.