-
Notifications
You must be signed in to change notification settings - Fork 133
Home
Welcome! This is the in-progress website redesign for the IEEE-Eta Kappa Nu (HKN) University of California, Berkeley Mu Chapter, built with Django, Django REST framework, and Vue.js.
- If you are new to development, check out the Git tutorial.
- If you are new to web development, check out the HTML and CSS tutorials.
- If you are new to Django, check out the Django tutorial.
- If you are new to hknweb, check out the Setup, Development, and Layout sections and the Contribution Procedure page.
- If you are maintaining hknweb, check out the Deployment and Production maintenance sections and the Miscellaneous page.
For more information, contact [email protected].
We use any sh shell e.g. bash, zsh, etc.
If conda is not already available, install conda. If you're installing conda for the first time, we recommend Miniconda over Anaconda. If you want to keep your default version of python, run conda config --set auto_activate_base false.
# Once `conda` is installed
$ conda env create -f config/hknweb-dev.yml # Create dev environment
$ conda activate hknweb-dev # Activate dev environment
$ python manage.py migrate # Initialize database
$ python manage.py init_permissions # Provision database with default permissionsAll commands we use are native to Django link to available Django commands. If you haven't worked with Django before, checkout the Django tutorial.
A few frequently used commands:
$ python manage.py makemigrations # Create migrations files
$ python manage.py migrate # Apply migrations files to database
$ python manage.py createsuperuser # Create an admin super user to login as
$ python manage.py runserver # Run development server
$ coverage run # Run tests
$ coverage report # Report test coverage
$ black . # Apply file formattingWhere can I find what I'm looking for?
| Path | Description |
|---|---|
| .github/workflows | Github actions config |
| config | General non-python hknweb config files |
| keyrings/live | GPG keyring, for authorizing access to encrypted secrets (Production Server Only) |
| LICENSE | Legal license: open source, enforced by law |
| bbtest.txt.gpg | blackbox test file |
| fabfile.py | Fabric deployment scripts |
| manage.py | Django task runner |
| pyproject.toml | Project maintenance config |
| run | The production run script |
Here are a few handy commands for maintainers:
# SSH into prod
ssh [email protected]
# cd into hknweb production
cd hknweb/prod/current
# Activate prod environment
conda activate hknweb-prod
# Open a Django shell
python manage.py shell
# Open a Django direct SQL database interface
python manage.py dbshell
Our deployment pipeline deploys from compserv/master to OCF servers using fabfile.py.
# Activate our dev environment
conda activate hknweb-dev
# Depending on your ssh setup, this may or may not work for you:
HKNWEB_MODE="prod" fab deploy
# If your SSH key to the apphost requires a password to unlock:
HKNWEB_MODE="prod" fab --prompt-for-passphrase deploy
# If you have no SSH key to the apphost (shame on you), and require password authentication:
HKNWEB_MODE="prod" fab --prompt-for-login-password deployHKNWEB_MODE="prod" fab rollback --release <Timestamp of Folder>where the <Timestamp of Folder> is the timestamp folder you want to rollback to in ~/hknweb/prod/releases/ (you don't need the full path, just the name of the specific folder inside the "releases" folder).
The documentation on this wiki is largely written by @jameszhu and @ochan1. Thanks for their efforts at making compserv renewable!