coil/hanabira.org

By coil

Updated over 1 year ago

hanabira.org is free open-source self-hostable Japanese and Korean learning website portal

Image
Languages & frameworks
Web servers
Databases & storage
0

10K+

coil/hanabira.org repository overview

Self-Hosting

Hanabira (https://hanabira.org/) can be run locally or on your server/laptop. To get started quickly, you can run Hanabira public Docker images. Current setup requires also NGINX reverse proxy, so the containers find each other and so that Certbot can easily renew SSL certificates on our Hanabira.org server. Eventually we will have fully containerized setup with docker-compose for one-click spin-up. Currently, Docker images are too big and un-optimized, this will be fixed once we get out of Alpha stage.

  1. NGINX and Docker containers

Use clean VirtualBox Linux Ubuntu based VM machine. Check config directory in the GitHub repo https://github.com/tristcoil/hanabira.org , put .env and config.json files into a directory ideally called hanabira from which we will mount these files into the containers. These files will contain your OpenAI and DEEPL API keys. Also put hanabira.org NGINX file into /etc/nginx/sites-enabled directory (and delete default config file). Restart NGINX.

Start pre-made public hanabira containers. One of the containers will need to mount the config files.

#FRONTEND-NEXT
docker run -d   -p 3000:3000   -e REACT_APP_HOST_IP=$(hostname -I | awk '{print $1}')   --restart=unless-stopped   coil/hanabira.org:frontend-next

#STATIC BACKEND EXPRESS+DB
docker run -d   -p 8000:8000   -e REACT_APP_HOST_IP=$(hostname -I | awk '{print $1}')   --restart=unless-stopped   coil/hanabira.org:express-db

#DYNAMIC BACKEND FLASK+DB
docker run -d -p 5100:5100 -v /home/coil/user_db:/data/db --add-host=host.docker.internal:host-gateway --restart=unless-stopped coil/hanabira.org:flask-dynamic-db

# DICTIONARY/TEXT PARSER/YOUTUBE backend image /d-api/v1              
docker run -d -p 5200:5200  --add-host=host.docker.internal:host-gateway -v $(pwd)/.env:/app/.env -v $(pwd)/config.json:/app/config.json --restart=unless-stopped coil/hanabira.org:dictionary-db

Hanabira will be then accessible locally on: http://localhost:8080/

If you cannot reach the website locally, we recommend to check if all containers are running and to clear browser cache.

Notes on Docker and NGINX handling:

Setup reverse NGINX proxy:
sudo apt-get install nginx 
sudo systemctl enable nginx 
sudo systemctl start nginx 
# put hanabira.org file into /etc/nginx/sites-enabled directory, also delete file called "default" so it is not conflicting our new config and restart nginx
sudo systemctl restart nginx 
sudo systemctl status nginx

Install Docker:
sudo apt-get install docker-compose
sudo usermod -aG docker $USER
(then reboot VM for the changes to take effect, there are options without reboot, this one is just easy)

Tag summary

Content type

Image

Digest

sha256:c0dfa7a6f

Size

1.3 GB

Last updated

over 1 year ago

docker pull coil/hanabira.org:frontend-next