https://github.com/banzaitokyo/askapp
Discussion board and q&a system
https://github.com/banzaitokyo/askapp
community discussion django forum
Last synced: 9 months ago
JSON representation
Discussion board and q&a system
- Host: GitHub
- URL: https://github.com/banzaitokyo/askapp
- Owner: BanzaiTokyo
- License: apache-2.0
- Created: 2016-09-04T16:42:00.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2021-09-22T17:38:50.000Z (over 4 years ago)
- Last Synced: 2024-04-14T16:15:09.420Z (almost 2 years ago)
- Topics: community, discussion, django, forum
- Language: Python
- Homepage: http://askapp.org
- Size: 664 KB
- Stars: 3
- Watchers: 3
- Forks: 2
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Django based discussion board and a Q&A system
## Run project in Docker
The easiest way to check out askapp is to run it's dockerized version:
- make sure you have Docker installed
- run `docker-compose up` from the project folder
This will run the project available at http://localhost:8000.
It already has an admin user "askapp" with password "askapp"
## Steps to deploy a project:
- git clone https://github.com/BanzaiTokyo/askapp.git
- cd
- sudo pip -r requirements.txt
- create .env file with your credentials of format VARIABLE_NAME=VALUE. See list of variables below.
- create database in MySQL
- python manage.py migrate
- python manage.py createsuperuser
- python manage.py collectstatic
- add a cron job `python manage.py calculate_scores` daily or hourly
## Enabling login with Google
Go to https://console.developers.google.com/, create a new project
Go to "Credentials" on left side menu, create new via "OAuth Client ID" option,
specify site root url (http://127.0.0.1:8000 for local or Docker installation )
for "Authorized Javascript origins" and (http://127.0.0.1:8000/accounts/google/login/callback/)
for "Authorized redirect URL".
Go to site admin -> "social accounts" -> "social applications", open or create social
application named Google, add "client id" and "secret key" obtained from Google Oauth client.
Add site to "chosen sites", save changes.
## Environment variables:
```DJANGO_SECRET - any random string, a secret key used internally by Django security mechanisms
DB_HOST - database hostname
DB_NAME - database name
DB_USER, DB_PASSWORD - MySQL credentials
DB_PASSWORD - database user password
EMAIL_HOST - SMTP server address
EMAIL_ADDRESS, EMAIL_HOST_PASSWORD - SMTP credentials
GOOGLE_API_KEY - a key for Youtube API to pull description for Youtube videos
RECAPTCHA_PRIVATE_KEY and RECAPTCHA_PUBLIC_KEY - Google reCaptcha's secret/site keys. Read more at https://www.google.com/recaptcha/admin
GOOGLE_ANALYTICS_ID - optional, Google Analytics ID to collect site statistics
```
### How to get Google API Key
There are numerous tutorials how to do that, for example
https://www.slickremix.com/docs/get-api-key-for-youtube/ or https://www.yotuwp.com/how-to-get-youtube-api-key/
## Peculiarities when deploying to a Django instance from Bitnami hosted on AWS
- DB_HOST is /opt/bitnami/mysql/tmp/mysql.sock, DB_USER=root, DB_PASSWORD is taken from https://docs.bitnami.com/aws/faq/get-started/find-credentials/
- python executable is named "python3" there
- cron job may look like "0 * * * * bitnami /bin/bash -c '. $HOME/.profile; python3 manage.py calculate_scores'"
#### Additional steps:
- cp ../Project/conf ./
- sed -i 's|Project/Project|/askapp|g' *
- sed -i 's|Project||g' *
- sed -i 's|wsgi-djangostack |wsgi-djangostack user=bitnami group=bitnami|' conf/httpd-app.conf
- sudo echo Include \"$(readlink -f conf/httpd-prefix.conf)\" >> ~/stack/apache2/conf/bitnami/bitnami-apps-prefix.conf
- sudo /opt/bitnami/ctlscript.sh restart apache
- mkdir askapp/media
- sudo chmod 755 askapp/media
- mkdir -p /var/tmp/askapp_cache