Author: Gerard Chen

  • WireGuard wg0 Not Starting After Reboot on Ubuntu



    If you’re using WireGuard on Ubuntu and notice that your wg0 interface
    does not start automatically after reboot, you’re not alone. This is a common issue—and fortunately, an easy one to fix.



    🚨 Problem



    After rebooting your Ubuntu system, the WireGuard interface wg0 is down,
    even though it worked perfectly before restarting.



    🤔 Why This Happens



    When you manually start WireGuard using:



    sudo wg-quick up wg0



    it only activates the VPN for the current session. It does not persist across reboots
    because the service has not been enabled in systemd.



    ✅ Solution: Enable WireGuard Auto-Start



    To ensure WireGuard starts automatically when your system boots, run:



    sudo systemctl enable wg-quick@wg0
    sudo systemctl start wg-quick@wg0



    This registers WireGuard as a system service and ensures wg0 starts at boot.



    🔍 Verify It’s Working


    sudo systemctl status wg-quick@wg0
    ip a show wg0



    If everything is configured correctly, you should see the interface active.



    ⚠️ Common Issues & Fixes



    1. Incorrect Config File Location



    Ensure your configuration file exists at:


    /etc/wireguard/wg0.conf


    2. File Permissions


    sudo chmod 600 /etc/wireguard/wg0.conf


    3. Network Not Ready at Boot



    Sometimes WireGuard starts before the network is fully initialized.
    Fix this by delaying startup:



    sudo systemctl edit wg-quick@wg0


    Add the following:



    [Unit]
    After=network-online.target
    Wants=network-online.target


    sudo systemctl daemon-reexec


    4. DNS Issues



    If you’re using the DNS= option in your config, ensure your system supports it
    (e.g., systemd-resolved or resolvconf).



    📊 Diagram: How WireGuard Startup Works




    ┌───────────────┐
    │ System Boot │
    └──────┬────────┘


    ┌──────────────────────┐
    │ systemd initializes │
    └──────┬───────────────┘


    ┌──────────────────────────────┐
    │ wg-quick@wg0.service enabled?│
    └──────┬───────────────┬───────┘
    │ YES │ NO
    ▼ ▼
    ┌───────────────┐ ┌──────────────┐
    │ Start wg0 VPN │ │ wg0 stays OFF│
    └───────────────┘ └──────────────┘


    📌 Summary



    • Problem: wg0 not starting after reboot

    • Cause: Service not enabled

    • Fix: systemctl enable wg-quick@wg0



    💡 Final Thoughts



    Enabling WireGuard at boot ensures your VPN connection is always active without manual intervention.
    This is especially important for servers, remote access setups, and privacy-focused configurations.



  • Cyber Zootopia log 首席管理員的「數碼寶貝飼養日記」

    這是一份來自 Cyber Zootopia 首席管理員的「數碼寶貝飼養日記」。

    記錄如何由 0 到 1,召喚並培育數碼寶貝。同時,為了使牠們未來能華麗變身為超級神獸,我同步開闢了專屬的訓練場(Playground)。寄望這些神獸能覺醒「隱藏特性」,代為處理日常生活及工作中的瑣事。究竟這場賽博實驗能進化到什麼程度?就讓我們從這一刻開始,持續觀察記錄下去。

  • mairadb command, basic 101

    # create database
    CREATE DATABASE `databaseName`;
    
    # create user
    CREATE USER 'my_user'@'localhost' IDENTIFIED BY 'your_strong_password';
    
    # grant privileges
    GRANT ALL PRIVILEGES ON my_new_database.* TO 'my_user'@'localhost';
    
    FLUSH PRIVILEGES;
    # in docker
    docker exec -it container_name mariadb -u root -p
    
    # Create the Database
    CREATE DATABASE `dbName`;
    # Create the User (Using '%' so you can connect from outside the container)
    CREATE USER 'userName'@'%' IDENTIFIED BY 'userPassword';
    
    # Grant Permissions
    GRANT ALL PRIVILEGES ON `dbName`.* TO 'dbUser'@'%';
    # Apply changes
    FLUSH PRIVILEGES;
    
    # Exit the prompt
    EXIT;
  • erpNEXT, “Multi-Bench, Multi-Tenant” architecture setting

    Bench Name (Domain)Internal Port Project
    alpha.comalpha.com8000alpha
    beta.combeta.com8001beta
    gamma.comgamma.com8002gamma

    Initialize the Bench

    # Replace 'alpha.com' with your actual domain
    bench init alpha.com --frappe-branch version-15
    cd alpha.com
  • GitLab deploy by using docker yml

    結論

    GitLab真的超吃資源,沒有優化的情況下,要佔用10.9G的RAM。只有自己用,現在RAM的價格,又跟黃金差不多。可能GitLab功能很強,現階段不適用。ChatGPT建議改用Gitea,就來試試看。

  • enlarge docker space

    問題:Your Docker build environment ran out of disk space.

    # 檢查 docker 狀態

    df -h
    docker system df

    # 清理docker 空間

    # Remove all unused data
    docker system prune -a --volumes
    
    # Remove build cache
    docker builder prune -a
    
    # Check again
    df -h
    

    問題:變更docker 位置

    # Stop Docker
    sudo systemctl stop docker
    
    # Edit Docker config
    sudo nano /etc/docker/daemon.json
    # add the following code in daemon.json
    
    {
      "data-root": "/new/docker/path"
    }
    # Create new directory
    sudo mkdir -p /new/docker/path
    
    # Move existing data (optional)
    sudo rsync -aP /var/lib/docker/ /new/docker/path/
    
    # Start Docker
    sudo systemctl start docker
  • Open-Source Workflow/Automation Tools

    Ranked by Popularity

    1. n8n — Very Popular
      • Widely used for general workflow automation with a visual builder.
      • Large community and many integrations.
      • Often ranked #1 in workflow tool lists.
    2. Node-RED — Highly Popular
      • Strong open-source user base, especially for IoT and integration workflows.
      • Long history and strong community.
    3. Apache Airflow — Very Popular (in data/engineering)
      • Dominant in data engineering and complex scheduled pipelines; huge adoption in enterprise data teams.
    4. Activepieces — Fast-Growing
      • Newer but rapidly rising in many “top open-source automation” lists.
      • Growing ecosystem and community interest.
    5. Huginn — Popular Niche Tool
      • Known in self-hosted automation communities for event-based agents.
    6. Windmill — Emerging
      • Increasingly included in open-source automation tool lists; still smaller compared to older players.
    7. Kestra — Growing
      • Gaining attention for scalable orchestration, less mainstream than Airflow but rising.

    Ranked with Brief Comments

    RankToolWhy it’s popular
    1n8nGeneral workflow automation; strong community; visual UI.
    2Node-REDMature, widely used in IoT and integrations; broad ecosystem.
    3Apache AirflowVery popular in data engineering and ETL use cases.
    4ActivepiecesNewer but rapidly adopted; mentioned in many 2025 tool lists.
    5HuginnKnown in privacy-focused and scriptable automation circles.
    6WindmillEmerging workflow tool, gaining traction.
    7KestraGrowing in developer orchestration space.

  • GPT 比較:chatGPT、Gemini、Claude

    Claude

    # Pron

    在APP佈署上,真的比較強。應該是系統內部,內建系統prompts羅輯就比較精細。

    # Cron

    “You’ve used 75% of your weekly limit”
    “You’ve used 75% of your monthly limit”

    一堆的token使用量限制,只要超過資費的token使用上限 (日限制 / 週限制 / 月限制),要嘛就等到限制被解除,要嘛就升級方案,就是要多付錢)

    Gemini

    # Pron

    # Cron

    chatGPT

    # Pron

    # Cron