Ensure your system has Git, git-lfs, Docker, and gdown installed.
Run the following command in a POSIX-compliant shell (i.e. Windows users - use GitBash).
Replace <install_dir>
with where you'd like to clone the script.
TODO: correct branch to main/dev when merged
curl -fL 'https://raw.githubusercontent.com/thecourseforum/theCourseForum2/refs/heads/master/scripts/setup.sh' | sh -s -- <install_dir>
- Clone the project:
$ git clone https://github.com/thecourseforum/theCourseForum2.git
$ cd theCourseForum
- Download the
.env
secrets file from the secrets repo and place it in the project root.
- Note: the file should be named exactly
.env
, not.env.txt
orenv.txt
- rename if necessary.
- Build the project
$ docker compose build --no-cache # from scratch (only necessary the first time)
$ docker compose up --build
- Wait for the Django server to finish building (i.e.
tcf_django | Watching for file changes with StatReloader
is visible in stdout). - Download and place the latest database backup (should be named
latest.sql
) from Google Drive intodb/latest.sql
in your local repo. - Update the database:
MacOS/Linux (or Windows, if you're using Git-Bash):
$ sh scripts/reset-db.sh db/latest.sql
If you're on windows, open up scripts/reset-db.sh
and run the commands manually (sorry)
- Ensure the website is up, running, and functional at
localhost:8000
.
When you open the project, VSCode may prompt you to install the recommended extensions for this project. Click yes and ensure that they are in your extension library. A list of the necessary libraries can be found here.
- Docker build error
=> CANCELED [internal] load build context
- This occurs because of a Windows compatibility issue with Docker. As of December 19, 2023, downgrade Docker to version 4.19, then re-build the project.
The application stack is listed below. These technologies were chosen because they are robust and align with the stack that UVA students learn in courses.
- Python
- Django
- PostgreSQL
- Bootstrap 4
- Javascript (jQuery)