主機
Ubuntu 24.04 LTS 可以支援至2029年
安裝套件:SSH、docker
安裝OJ
$ git clone -b 2.0 https://github.com/QingdaoU/OnlineJudgeDeploy.git
$ cd OnlineJudgeDeploy
閱讀全文〈[Linux] 架設Online Judge〉 PYTHON、UBUNTU、MAC、CMS
Ubuntu 24.04 LTS 可以支援至2029年
安裝套件:SSH、docker
$ git clone -b 2.0 https://github.com/QingdaoU/OnlineJudgeDeploy.git
$ cd OnlineJudgeDeploy
閱讀全文〈[Linux] 架設Online Judge〉 export ACCOUNT_EMAIL="OOO@XXX.XXX"
/usr/local/acme.sh/acme.sh --set-default-ca --server zerossl
如果站點沒有順利更換過去,乾脆vhost重建,再重選需要 SSL
server {
listen 80;
server_name yourname.com;
return 301 https://$server_name$request_uri;
# 不好的方法:
rewrite ^/(.*)$ http://example.com/$1 permanent;
# 好的方法:
rewrite ^ http://example.com$request_uri? permanent;
# 更好的方法:
return 301 http://example.com$request_uri;
最近acme.sh 會使用zero ssl,如果要改回letsencrypt
acme.sh --set-default-ca --server letsencrypt
附帶:
如果要解除.user.ini
的鎖定
chattr -i xxx/.user.ini
Starting at notebook version 5.0, you can enter and store a password for your notebook server with a single command. jupyter notebook password will prompt you for your password and record the hashed password in your jupyter_notebook_config.json
.
from notebook.auth import passwd passwd()
$ docker exec -it miniconda /bin/bash
可以開第二個終端機,進去進行pip安裝套件等工作 -i:互動模式 -t:終端機 -d:在背景執行
開始設定環境(假如是linux的話,可以輸入以下指令即可:) # 啟動環境 $ conda activate 999 # 關閉環境 $ conda deactivate
docker logs --tail 3 notebook
以下都是使用一般user權限,不用root。畢竟一開始也有將某個user開通docker使用權限了。(參考上篇) $ cd /home $ mkdir -p unifi/data $ mkdir -p unifi/log # 測試指令: $ docker run --rm --init -p 8080:8080 -p 8443:8443 -p 3478:3478/udp -e TZ='Asia/Taipei' -v /home/unifi:/unifi --name unifi jacobalberty/unifi:latest --rm:其用途就是在我們執行完指令後,可以不用再下 docker rm 的指令去刪除容器,直接在執行完指令後, Docker可以自動幫我們刪除容器。 latest:本來要裝穩定版,但原本就有運作的UniFi Controller,他已經升級到最新版本,所以這邊也跟著抓最新版本 # 實際上線指令: $ docker run -d \ --restart=unless-stopped \ --net=host \ --name=unifi \ -e TZ='Asia/Taipei' \ -e RUNAS_UID0=false \ -v /home/unifi:/unifi \ jacobalberty/unifi:latest --net=host:是為了允許L2發現。如果不需要L2發現,只需映射Port即可。 -e RUNAS_UID0 改成 false,讓 Controller 不要用 root 身份運作。 # 未來我該如何升級呢? $ docker pull jacobalberty/unifi:stable $ docker stop unifi $ docker rename unifi unifi.save 然後再做一次run指令,跟上面相同 $ docker run -d \ --restart=unless-stopped \ --net=host \ --name=unifi \ -e TZ='Asia/Taipei' \ -e RUNAS_UID0=false \ -v /home/unifi:/unifi \ jacobalberty/unifi:latest