OpenProject
- 2025.04.16
- docker Ubuntu Ubuntu 24.04
Installation with docker container
docker
安裝 docker
Pulling OpenProject Image
docker pull openproject/openproject:15
1docker docs: docker image pull
Creating the Directory for Persistent Data Stores
sudo mkdir -p /var/lib/openproject/pgdata /var/lib/openproject/assets
啟動 OpenProject 的 docker container
docker run -d --name openproject \ --restart unless-stopped \ -p 127.0.0.1:8080:80 \ -e OPENPROJECT_SECRET_KEY_BASE=$(openssl rand -hex 64) \ -e OPENPROJECT_HOST__NAME={domain_name} \ -e OPENPROJECT_HTTPS=true \ -v /var/lib/openproject/pgdata:/var/openproject/pgdata \ -v /var/lib/openproject/assets:/var/openproject/assets \ openproject/openproject:15
-d
or--detach
2docker docs: Running containers – Foreground and background--restart unless-stopped
3docker docs: Start containers automatically:- 自動重啟:當 container 停止,docker 引擎會嘗試再次重新啟動
- 手動停止例外:
人為呼叫docker stop
或docker kill
指令時
即使 docker daemon4docker docs: docker Engine 重啟,該容器也不會再啟動
-p {host_port}:{container_port}
:將 container 的{container_port}
指定到主機的{host_port}
-
SECRET_KEY_BASE 是 Ruby on Rails 應用中非常重要的一個安全設定
(OpenProject 就是基於 Rails)
用來生成並驗證:-
使用者登入 session 的加密簽章
-
防止 CSRF(跨站請求偽造攻擊)
-
資料完整性驗證
-
- 使用
openssl rand -hex 64
隨機產生一個 128 字元 (64 bytes) 長的十六進位字串
使用 Apache2 作為反代理 並 追加站點
Apache2
安裝 Apache2 套件並重啟
sudo a2enmod proxy proxy_http rewrite headers ssl sudo systemctl restart apache2
建立 Apache2 的 可用 虛擬主機 (VirtualHost) 設定檔 / 站點
建立/etc/apache2/sites-available/openproject.conf
並寫入:
<VirtualHost *:80> ServerName pm.a1go.ai RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^/?(.*)$ https://%{SERVER_NAME}/$1 [R=301,L] </VirtualHost> <IfModule mod_ssl.c> <VirtualHost *:443> ServerName pm.a1go.ai SSLEngine On SSLCertificateFile /etc/letsencrypt/live/pm.a1go.ai/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/pm.a1go.ai/privkey.pem ProxyRequests Off ProxyPreserveHost On RequestHeader set X-Forwarded-Proto "https" ProxyPass / http://127.0.0.1:8080/ ProxyPassReverse / http://127.0.0.1:8080/ </VirtualHost> </IfModule>
啟用站點並重載 Apache2
sudo a2ensite openproject.conf sudo systemctl reload apache2
DDClient
更新 /etc/ddclient.conf
重啟 DDClient
sudo systemctl restart ddclient
測試 DDClient
sudo ddclient -daemon=0 -debug -verbose -noquiet
Certbot
先一旦暫停 Apache2
sudo systemctl stop apache2
使用 Certbot 在 Standalone 模式下 取得 SSL 憑證 (自動續期)
sudo certbot certonly --standalone -d {new_domain_name}
再次啟動 Apache2
sudo systemctl start apache2
測試並重載 Apache2
sudo apache2ctl configtest sudo systemctl reload apache2
Last Updated on 2025/04/18 by A1go