Caddy2 + Flask and Gunicorn

Caddy2 + Flask and Gunicorn
Photo by Carlos Muza / Unsplash

Install Python and python-venv:

sudo apt install python3-venv

Create a virtual environment to run your Flask project:

cd /home/username
python3 -m venv project_name

Install Gunicorn, Flask and other requirements:

source project_name/bin/activate
pip install wheel
pip install gunicorn flask

Create Flask APP file:

app_name.py

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    app.run(host='0.0.0.0')

Install supervisor for observe Gunicorn:

sudo apt install supervisor

Create supervisor conf file:

sudo nano /etc/supervisor/conf.d/project_name.conf

/etc/supervisor/conf.d/project_name.conf

[program:ProjectName]
directory=/home/username/project_name
command=/home/username/project_name/bin/gunicorn app_name:app -b 127.0.0.1:5000 --reload --max-requests 1 --access-logfile=- --error-logfile=-
autostart=true
autorestart=true
stderr_logfile=/var/log/HelloBot.err.log
stdout_logfile=/var/log/HelloBot.out.log

Reload conf file and restart supervisor:

sudo supervisorctl reread
sudo service supervisor restart

Install inotify-tools and Gunicorn will restart automatically when detect code changed:

sudo apt install inotify-tools
sudo service supervisor restart

Caddy Proxy Setting:
/etc/caddy/Caddyfile

example.com {
        root * /var/www/html

        handle /api/* {
        # uri strip_prefix /api  ## uncomment this line to strip prefix
        reverse_proxy 127.0.0.1:5000
        }

        tls yourname@email.com
}

Finally, reload and restart Caddy:

sudo systemctl reload caddy
sudo systemctl restart caddy

Enjoy ~ 🙂

Read more

開始使用 Codeigniter 4

開始使用 Codeigniter 4

沉寂了幾年沒有動靜的 Codeigniter 於前兩年重新復活,並且發表了 Codeigniter 4,更貼近現在 MVC 架構。 許多僅需要撰寫小型專案時,輕量且可快速建置的 Codeigniter 是不錯的選擇。 建置環境基本需求: 1. PHP 7.4+ 2. Extensions: intl , mbstring , json step1) 使用 PHP Composer 安裝: composer create-project codeigniter4/appstarter project-root step 2) env 檔基本設定 將專案的根目錄底下的 env 檔案複製並取名為 .env cp env .env step 3) 本機啟動 Codeigniter php spark

By Mike Li
使用 docker 建構留言系統 remark42

使用 docker 建構留言系統 remark42

Flat File CMS 輕快且容易使用,唯一缺憾就是沒有比較好的評論系統。 最近研究 open source comment system,找到了 remark42 。 Remark42 不追蹤使用者紀錄,可 Google、Facebook、Github 等平台登入,也可單純用 email 或匿名留言。 系統只要簡單指令或 Docker 即可立即建構完成。 分享一下配置檔,也許可以給其他人設置上作為參考。 (沒有串接其他社群平台,僅開放以 email 方式登入留言) docker-compose.yaml version: "2" services: remark: # remove the next line in case you want to use this

By Mike Li