From 6d68b39989996f4ce40bc7cca6eebcb3dacbf6c4 Mon Sep 17 00:00:00 2001 From: joshua Date: Sun, 31 Dec 2023 01:20:37 -0500 Subject: Added some recipes (imcomplete) to wiki --- docs/desktop/thunderbird.md | 2 +- docs/food/curry.md | 33 ++ docs/food/spicy-shrimp.md | 35 ++ docs/food/tempora.md | 22 + mkdocs.yml | 4 + site/404.html | 107 +++++ site/about/index.html | 109 ++++- site/desktop/desktop/index.html | 107 +++++ site/desktop/thunderbird/index.html | 111 +++++- site/food/curry/index.html | 772 +++++++++++++++++++++++++++++++++++ site/food/spicy-shrimp/index.html | 775 ++++++++++++++++++++++++++++++++++++ site/food/tempora/index.html | 744 ++++++++++++++++++++++++++++++++++ site/index.html | 107 +++++ site/search/search_index.json | 2 +- site/server/cgit/index.html | 107 +++++ site/server/ddns/index.html | 107 +++++ site/server/server/index.html | 107 +++++ site/server/syncthing/index.html | 107 +++++ site/sitemap.xml | 15 + site/sitemap.xml.gz | Bin 265 -> 291 bytes 20 files changed, 3368 insertions(+), 5 deletions(-) create mode 100644 docs/food/curry.md create mode 100644 docs/food/spicy-shrimp.md create mode 100644 docs/food/tempora.md create mode 100644 site/food/curry/index.html create mode 100644 site/food/spicy-shrimp/index.html create mode 100644 site/food/tempora/index.html diff --git a/docs/desktop/thunderbird.md b/docs/desktop/thunderbird.md index f930254..222f540 100644 --- a/docs/desktop/thunderbird.md +++ b/docs/desktop/thunderbird.md @@ -8,7 +8,7 @@ Unfortunately, I'm American, so here's how I change it. 1. Go to settings in Thunderbird. 2. Change Date and Time Formatting to Regional settings locale. 3. Go to config editor at the bottom of general settings. -4. Create new config string intl.date_time.pattern_overrite.time_short. +4. Create new config string `intl.date_time.pattern_overrite.time_short`. 5. Format follows [datetime](https://unicode-org.github.io/icu/userguide/format_parse/datetime/) format, I use hh:mmaaaa. 6. Restart Thunderbird. diff --git a/docs/food/curry.md b/docs/food/curry.md new file mode 100644 index 0000000..2e389a3 --- /dev/null +++ b/docs/food/curry.md @@ -0,0 +1,33 @@ +# Curry Recipe + +Serves four people with leftovers for the week. + +## Ingredients + +* 2-3 small carrots or 1.5 large carrots +* Bag of white mushroom thinly sliced +* 1 hobok or zucchini cut into 1 cm cubes +* 4 Medium potatoes cut into 1 cm cubes +* 1.5 Vermont curry boxes +* 1 big onion diced +* (Optional) Meat e.g. sausage +* (Optional) Cooking wine + +## Preparation + +* Dice the onion +* Dice the potatoes into 1cm cubes +* Dice the hobok/zucchini into 1cm cubes +* Put the potatoes in water to remove starch + +## Cooking + +* Add 2 tablespoons of oil to the pot +* Add carrot +* Add potato when carrots are cooked +* Add onion +* Add curry bricks +* Add wine +* Add water and wait for it to boil +* Add meat e.g. sausage (optional) +* Add Mushroom & hobok / zucchini diff --git a/docs/food/spicy-shrimp.md b/docs/food/spicy-shrimp.md new file mode 100644 index 0000000..8b95233 --- /dev/null +++ b/docs/food/spicy-shrimp.md @@ -0,0 +1,35 @@ +# Spicy Shrimp + +## Ingredients + +* Shrimp half pound +* 1 onion +* 3 cloves of garlic +* Green onion +* Pepper paste (gochujang) +* Butter (?? Quantity) +* Sugar +* MSG thing (?? Quantity) +* 1.5 spoonfulls cornstarch +* Sesame oil + +## Preparation + +* Salt the shrimp + +## Cooking + +* Add onion +* Add garlic +* Add shrimp +* Add cooking wine +* Add pepper paste +* Add water +* Add butter +* Add MSG thing +* Add sugar to taste +* Add green onion +* In a separate bowl, add cornstarch +* Add water to the separate bowl +* Combine the cornstarch bowl with the sauce bowl +* Add seasame oil to the mix diff --git a/docs/food/tempora.md b/docs/food/tempora.md new file mode 100644 index 0000000..8c95ee7 --- /dev/null +++ b/docs/food/tempora.md @@ -0,0 +1,22 @@ +# Tempora Recipe + +## Ingredients + +* Tempora from Korean market +* 1 spoonful diced garlic +* Pepper Powder +* Half an onion +* Green Onion +* Soy sauce +* Sugar + +## Cooking + +* Add the garlic +* Stir for a bit +* Add tiny amount of pepper powder +* Add tempora +* Add onion +* Add soy sauce and sugar to taste +* Stir at low heat for a long time +* Add green onion as a garnish diff --git a/mkdocs.yml b/mkdocs.yml index 2c51acb..7955173 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -10,6 +10,10 @@ nav: - Desktop: - Desktop: desktop/desktop.md - Thunderbird: desktop/thunderbird.md + - Food: + - Curry: food/curry.md + - Tempora: food/tempora.md + - Spicy Shrimp: food/spicy-shrimp.md - About: about.md theme: diff --git a/site/404.html b/site/404.html index eaf399b..96343a2 100644 --- a/site/404.html +++ b/site/404.html @@ -415,6 +415,113 @@ + + + + + +
  • + + + + + + + + + + + +
  • + + + + + + + + +
  • diff --git a/site/about/index.html b/site/about/index.html index 761cfdc..de8705a 100644 --- a/site/about/index.html +++ b/site/about/index.html @@ -11,7 +11,7 @@ - + @@ -422,6 +422,113 @@ + + + + + + + +
  • + + + + + + + + + + + +
  • + + + + + + + diff --git a/site/desktop/desktop/index.html b/site/desktop/desktop/index.html index 14c59b4..3bea5c6 100644 --- a/site/desktop/desktop/index.html +++ b/site/desktop/desktop/index.html @@ -438,6 +438,113 @@ + + + + + +
  • + + + + + + + + + + + +
  • + + + + + + + + +
  • diff --git a/site/desktop/thunderbird/index.html b/site/desktop/thunderbird/index.html index 28c86b6..796f686 100644 --- a/site/desktop/thunderbird/index.html +++ b/site/desktop/thunderbird/index.html @@ -14,7 +14,7 @@ - + @@ -477,6 +477,113 @@ + + + + + +
  • + + + + + + + + + + + +
  • + + + + + + + + +
  • @@ -549,7 +656,7 @@ Unfortunately, I'm American, so here's how I change it.

  • Go to settings in Thunderbird.
  • Change Date and Time Formatting to Regional settings locale.
  • Go to config editor at the bottom of general settings.
  • -
  • Create new config string intl.date_time.pattern_overrite.time_short.
  • +
  • Create new config string intl.date_time.pattern_overrite.time_short.
  • Format follows datetime format, I use hh:mmaaaa.
  • Restart Thunderbird.
  • diff --git a/site/food/curry/index.html b/site/food/curry/index.html new file mode 100644 index 0000000..a721667 --- /dev/null +++ b/site/food/curry/index.html @@ -0,0 +1,772 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Curry - Joshua's Wiki + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + Skip to content + + +
    +
    + +
    + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    Curry Recipe

    +

    Serves four people with leftovers for the week.

    +

    Ingredients

    +
      +
    • 2-3 small carrots or 1.5 large carrots
    • +
    • Bag of white mushroom thinly sliced
    • +
    • 1 hobok or zucchini cut into 1 cm cubes
    • +
    • 4 Medium potatoes cut into 1 cm cubes
    • +
    • 1.5 Vermont curry boxes
    • +
    • 1 big onion diced
    • +
    • (Optional) Meat e.g. sausage
    • +
    • (Optional) Cooking wine
    • +
    +

    Preparation

    +
      +
    • Dice the onion
    • +
    • Dice the potatoes into 1cm cubes
    • +
    • Dice the hobok/zucchini into 1cm cubes
    • +
    • Put the potatoes in water to remove starch
    • +
    +

    Cooking

    +
      +
    • Add 2 tablespoons of oil to the pot
    • +
    • Add carrot
    • +
    • Add potato when carrots are cooked
    • +
    • Add onion
    • +
    • Add curry bricks
    • +
    • Add wine
    • +
    • Add water and wait for it to boil
    • +
    • Add meat e.g. sausage (optional)
    • +
    • Add Mushroom & hobok / zucchini
    • +
    + + + + + + + + + + + + + +
    +
    + + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + + \ No newline at end of file diff --git a/site/food/spicy-shrimp/index.html b/site/food/spicy-shrimp/index.html new file mode 100644 index 0000000..00b9a15 --- /dev/null +++ b/site/food/spicy-shrimp/index.html @@ -0,0 +1,775 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Spicy Shrimp - Joshua's Wiki + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + Skip to content + + +
    +
    + +
    + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    Spicy Shrimp

    +

    Ingredients

    +
      +
    • Shrimp half pound
    • +
    • 1 onion
    • +
    • 3 cloves of garlic
    • +
    • Green onion
    • +
    • Pepper paste (gochujang)
    • +
    • Butter (?? Quantity)
    • +
    • Sugar
    • +
    • MSG thing (?? Quantity)
    • +
    • 1.5 spoonfulls cornstarch
    • +
    • Sesame oil
    • +
    +

    Preparation

    +
      +
    • Salt the shrimp
    • +
    +

    Cooking

    +
      +
    • Add onion
    • +
    • Add garlic
    • +
    • Add shrimp
    • +
    • Add cooking wine
    • +
    • Add pepper paste
    • +
    • Add water
    • +
    • Add butter
    • +
    • Add MSG thing
    • +
    • Add sugar to taste
    • +
    • Add green onion
    • +
    • In a separate bowl, add cornstarch
    • +
    • Add water to the separate bowl
    • +
    • Combine the cornstarch bowl with the sauce bowl
    • +
    • Add seasame oil to the mix
    • +
    + + + + + + + + + + + + + +
    +
    + + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + + \ No newline at end of file diff --git a/site/food/tempora/index.html b/site/food/tempora/index.html new file mode 100644 index 0000000..881d773 --- /dev/null +++ b/site/food/tempora/index.html @@ -0,0 +1,744 @@ + + + + + + + + + + + + + + + + + + + + + + + + + Tempora - Joshua's Wiki + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + Skip to content + + +
    +
    + +
    + + + + + + +
    + + +
    + +
    + + + + + + +
    +
    + + + +
    +
    +
    + + + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    +
    + + + +
    +
    + + + + +

    Tempora Recipe

    +

    Ingredients

    +
      +
    • Tempora from Korean market
    • +
    • 1 spoonful diced garlic
    • +
    • Pepper Powder
    • +
    • Half an onion
    • +
    • Green Onion
    • +
    • Soy sauce
    • +
    • Sugar
    • +
    +

    Cooking

    +
      +
    • Add the garlic
    • +
    • Stir for a bit
    • +
    • Add tiny amount of pepper powder
    • +
    • Add tempora
    • +
    • Add onion
    • +
    • Add soy sauce and sugar to taste
    • +
    • Stir at low heat for a long time
    • +
    • Add green onion as a garnish
    • +
    + + + + + + + + + + + + + +
    +
    + + + +
    + +
    + + + +
    +
    +
    +
    + + + + + + + + + + \ No newline at end of file diff --git a/site/index.html b/site/index.html index db0e512..87d0796 100644 --- a/site/index.html +++ b/site/index.html @@ -434,6 +434,113 @@ + + + + + +
  • + + + + + + + + + + + +
  • + + + + + + + + +
  • diff --git a/site/search/search_index.json b/site/search/search_index.json index d44c716..7721912 100644 --- a/site/search/search_index.json +++ b/site/search/search_index.json @@ -1 +1 @@ -{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Welcome to Joshua's Wiki","text":"

    This is where I will be putting my stuff on how to configure things

    "},{"location":"about/","title":"About this wiki","text":"

    This is where I will be putting my stuff on how to configure things as well as some other personal references.

    "},{"location":"desktop/desktop/","title":"Desktop Wiki","text":"

    This page describes several useful tips and configurations that I've used.

    Thunderbird

    "},{"location":"desktop/thunderbird/","title":"Thunderbird","text":""},{"location":"desktop/thunderbird/#setting-dateformat","title":"Setting dateformat","text":"

    Usually the date format is not in AM/PM. Unfortunately, I'm American, so here's how I change it.

    1. Go to settings in Thunderbird.
    2. Change Date and Time Formatting to Regional settings locale.
    3. Go to config editor at the bottom of general settings.
    4. Create new config string intl.date_time.pattern_overrite.time_short.
    5. Format follows datetime format, I use hh:mmaaaa.
    6. Restart Thunderbird.

    References:

    Linux Mint formum detailing these instructions

    Datetime Reference

    Mozilla Article on customizing formats

    "},{"location":"server/cgit/","title":"Cgit with gitolite and caddy","text":""},{"location":"server/cgit/#setup","title":"Setup","text":"

    Install dependencies.

    # apt install cgit python-is-python3 python3-pygments python3-markdown docutils-common groff perl\n

    Make a git user.

    sudo adduser --system --shell /bin/bash --group --disabled-password --home /home/git git\n

    Allow ssh passwordless login.

    usermod -p '*' username\n
    "},{"location":"server/cgit/#gitolite","title":"Gitolite","text":"

    Install the gitolite package from the repository directly.

    "},{"location":"server/cgit/#configuration-with-cgit","title":"Configuration with cgit","text":"

    Configuration of gitolite is done by modifying $HOME/.gitolite.rc.

    To work correctly with cgit, gitweb and cgit configuration options need to work with gitolite.

    Change:

    GIT_CONFIG_KEYS  =>  '',\n

    To:

    GIT_CONFIG_KEYS  =>  '.*',\n

    To have permissions work correctly,

    Change:

    UMASK  =>  0077,\n

    To:

    UMASK  =>  0027,\n

    In the ENABLE field, add gitweb and cgit to the list.

    "},{"location":"server/cgit/#usage","title":"Usage","text":"

    Detailed usage of gitolite can be found here

    "},{"location":"server/cgit/#repository-ignore","title":"Repository ignore","text":"

    After cgit is configured, cgit can be told to ignore a repo with this syntax.

    repo gitolite-admin\n    config cgit.ignore=1\n
    "},{"location":"server/cgit/#adding-hooks-to-gitolite","title":"Adding Hooks to gitolite","text":"

    This page details how to add hooks to your repositories.

    Example hook that updates a website every git push. Make sure this directory is owned by git.

    #!/bin/sh\nGIT_WORK_TREE=/desired/website/directory git checkout -f\n
    "},{"location":"server/cgit/#cgit","title":"Cgit","text":""},{"location":"server/cgit/#running-cgit-with-caddy","title":"Running cgit with caddy","text":"

    Install the fcgiwrap package.

    Create a systemd service that wraps cgit with FastCGI.

    # systemctl edit --full --force cgit.service\n
    [Unit]\nDescription=CGI web interface to the Git SCM\nAfter=network.target\n\n[Service]\nType=exec\nExecStart=fcgiwrap -f -p \"/usr/lib/cgit/cgit.cgi\" -s tcp:127.0.0.1:8999\n\n[Install]\nWantedBy=multi-user.target\n
    # systemctl start cgit\n

    Add cgit configuration to caddy.

    git.joshuayun.com {\n        handle_path /cgit-css/* {\n                root * /usr/share/cgit/\n                file_server\n        }\n\n        handle {\n                reverse_proxy localhost:8999 {\n                        transport fastcgi {\n                                env DOCUMENT_ROOT /usr/lib/cgit/\n                                env SCRIPT_FILENAME /usr/lib/cgit/cgit.cgi\n                        }\n                }\n        }\n}\n
    "},{"location":"server/cgit/#cgit-configuration","title":"Cgit configuration","text":"

    More detailed documentation can be found on the cgitrc(5) manual.

    enable-git-config is used to allow for gitweb.* configurations in gitolite, e.g. description, owner.

    enable-git-config=1\n

    project-list sets where cgit looks for projects, this list is the one updated by gitolite

    project-list=/home/git/projects.list\n

    scan-path sets where the actual git repositories live

    scan-path=/home/git/repositories\n
    "},{"location":"server/cgit/#references","title":"References","text":"

    SixFoisNeuf Used this blog to run cgit using fcgiwrap rather than a caddy plugin. The entire cgit with caddy section was using his work.

    Mateja Maric Used this blog to help configure cgitrc, gitolite.rc

    Luke Hsiao Used the git user creation command from this blog.

    Omar Polo (yumh) Used this blog to help configure cgitrc for hidden repos.

    Bryan Brattlof Not much used here, kept as reference.

    "},{"location":"server/ddns/","title":"DDNS Setup","text":""},{"location":"server/ddns/#porkbun-api","title":"Porkbun API","text":"

    Follow this porkbun guide on enabling the api for your domain.

    "},{"location":"server/ddns/#ddns-updater","title":"ddns-updater","text":"

    ddns-updater is the program used to update Porkbun's A record of your domain.

    "},{"location":"server/ddns/#docker-install","title":"Docker install","text":"

    Install the docker package from official docker repositories.

    "},{"location":"server/ddns/#setup","title":"Setup","text":"

    Create a directory with config.json inside, and make sure that its owner has a uid of 1000.

    mkdir data\ntouch data/config.json\n# Owned by user ID of Docker container (1000)\nchown -R 1000 data\n# all access (for creating json database file data/updates.json)\nchmod 700 data\n# read access only\nchmod 400 data/config.json\n

    Configuration for porkbun in config.json

    {\n  \"settings\": [\n    {\n      \"provider\": \"porkbun\",\n      \"domain\": \"domain.com\",\n      \"host\": \"@\",\n      \"api_key\": \"PORKBUN SECRET KEY\",\n      \"secret_api_key\": \"PORKBUN API KEY\",\n      \"ip_version\": \"ipv4\"\n    }\n  ]\n}\n

    Optional \"ttl\" paramter specifing A record TTL not included.

    "},{"location":"server/ddns/#usage","title":"Usage","text":"
    docker run -d -p 8000:8000/tcp -v \"$(pwd)\"/data:/updater/data qmcgaw/ddns-updater\n

    This will start a docker container that will start updating the DNS records. Status updates can be seen in a web server by going to localhost:8000.

    "},{"location":"server/server/","title":"Homelab Server Setup","text":"

    This page describes how I setup my personal webserver

    I'm hosting a website, wiki, caldav using Radicale, git using cgit and Gitolite, and webdav support

    "},{"location":"server/server/#linux-distribution-used","title":"Linux Distribution Used","text":"

    Debian 12 Bookworm.

    Update the system.

    # apt update\n# apt upgrade\n
    "},{"location":"server/server/#ssh","title":"SSH","text":"

    Generate ssh keys

    ssh-keygen -t [keytype]\n

    Add ssh keys to ~/.ssh/authorized_keys

    ssh-copy-id -i /path/to/pubkey [user@]machine\n
    "},{"location":"server/server/#optional-security-enhancements","title":"Optional security enhancements","text":"

    Change the port in /etc/sshd_config to a nonstandard port to harden security.

    Port 1234\n

    Disable password login in /etc/sshd_config/

    PubkeyAuthentication yes\nChallengeResponseAuthentication no\nPasswordAuthentication no\nKbdInteractiveAuthentication no\nUsePAM no\n

    Disable XForwarding

    X11Forwarding no\n

    Disable remote root login

    PermitRootLogin no\n

    Disable root account

    $ sudo chsh -s /sbin/nologin root\n
    "},{"location":"server/server/#ddns","title":"DDNS","text":"

    Setup Dyanmic DNS (ddns) with Porkbun and ddns-updater.

    "},{"location":"server/server/#caddy","title":"Caddy","text":"

    Install the Caddy package from Caddy directly.

    "},{"location":"server/server/#cgit-gitolite","title":"Cgit & gitolite","text":"

    Setup cgit with gitolite and caddy.

    "},{"location":"server/server/#radicale","title":"Radicale","text":"

    Install the Radicale package.

    Start the Radicale service.

    systemctl enable radicale.service\nsystemctl start radicale.service\n

    Generate secure passwords using htpasswd.

    # Create a new htpasswd file with the user \"user1\"\n$ htpasswd -c /path/to/users user1\nNew password:\nRe-type new password:\n# Add another user\n$ htpasswd /path/to/users user2\nNew password:\nRe-type new password:\n

    Edit configuration to add users

    [auth]\ntype = htpasswd\nhtpasswd_filename = /path/to/users\n# encryption method used in the htpasswd file\nhtpasswd_encryption = md5\n

    Add configuration to caddy.

    caldav.joshuayun.com {\n    handle_path /* {\n        reverse_proxy localhost:5232 {\n        header_up X-Script-Name /radicale\n        }\n    }\n    handle_path /radicale/* {\n        reverse_proxy localhost:5232 {\n            header_up X-Script-Name /radicale\n        }\n    }\n}\n
    "},{"location":"server/server/#webdav","title":"Webdav","text":"

    Add the Webdav module to Caddy.

    sudo caddy add-package github.com/mholt/caddy-webdav\nsudo systemctl restart caddy\n

    Add Webdav to the Caddy configuration

    Example configuration with protected file browsing, see the github for more configurations.

    webdav.joshuayun.com {\n    @get method GET\n    root * WEBDAV_PATH\n    route {\n        basicauth {\n            joshua CADDY_HASH\n        }\n        file_server @get browse\n        webdav\n    }\n}\n

    To generate the hash:

    caddy hash-password\n
    "},{"location":"server/syncthing/","title":"Syncthing Setup","text":"

    I am currently using syncthing for my music to be synced across devices.

    "},{"location":"server/syncthing/#installation","title":"Installation","text":"

    Install the Syncthing package from upstream repositories.

    "},{"location":"server/syncthing/#reverse-proxy-setup-ref","title":"Reverse proxy setup [Ref]","text":"

    Example syncthing reverse proxy setup.

    sync.joshuayun.com {\n        handle_path /* {\n                reverse_proxy http://localhost:8384 {\n                        header_up Host {upstream_hostport}\n                }\n        }\n}\n

    Optional: Add a htpasswd to block unauthorized access to the syncthing.

    "},{"location":"server/syncthing/#syncthing-system-service-ref","title":"Syncthing system service [Ref]","text":"

    Enable the syncthing user service.

    systemctl enable syncthing@myuser.service\nsystemctl start syncthing@myuser.service\n
    "},{"location":"server/syncthing/#syncthing-configuration","title":"Syncthing configuration","text":"

    Done all through the gui. It is recommended to setup a user login, especially if you are making a syncthing that is exposed to the open internet.

    "}]} \ No newline at end of file +{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Welcome to Joshua's Wiki","text":"

    This is where I will be putting my stuff on how to configure things

    "},{"location":"about/","title":"About this wiki","text":"

    This is where I will be putting my stuff on how to configure things as well as some other personal references.

    "},{"location":"desktop/desktop/","title":"Desktop Wiki","text":"

    This page describes several useful tips and configurations that I've used.

    Thunderbird

    "},{"location":"desktop/thunderbird/","title":"Thunderbird","text":""},{"location":"desktop/thunderbird/#setting-dateformat","title":"Setting dateformat","text":"

    Usually the date format is not in AM/PM. Unfortunately, I'm American, so here's how I change it.

    1. Go to settings in Thunderbird.
    2. Change Date and Time Formatting to Regional settings locale.
    3. Go to config editor at the bottom of general settings.
    4. Create new config string intl.date_time.pattern_overrite.time_short.
    5. Format follows datetime format, I use hh:mmaaaa.
    6. Restart Thunderbird.

    References:

    Linux Mint formum detailing these instructions

    Datetime Reference

    Mozilla Article on customizing formats

    "},{"location":"food/curry/","title":"Curry Recipe","text":"

    Serves four people with leftovers for the week.

    "},{"location":"food/curry/#ingredients","title":"Ingredients","text":"
    • 2-3 small carrots or 1.5 large carrots
    • Bag of white mushroom thinly sliced
    • 1 hobok or zucchini cut into 1 cm cubes
    • 4 Medium potatoes cut into 1 cm cubes
    • 1.5 Vermont curry boxes
    • 1 big onion diced
    • (Optional) Meat e.g. sausage
    • (Optional) Cooking wine
    "},{"location":"food/curry/#preparation","title":"Preparation","text":"
    • Dice the onion
    • Dice the potatoes into 1cm cubes
    • Dice the hobok/zucchini into 1cm cubes
    • Put the potatoes in water to remove starch
    "},{"location":"food/curry/#cooking","title":"Cooking","text":"
    • Add 2 tablespoons of oil to the pot
    • Add carrot
    • Add potato when carrots are cooked
    • Add onion
    • Add curry bricks
    • Add wine
    • Add water and wait for it to boil
    • Add meat e.g. sausage (optional)
    • Add Mushroom & hobok / zucchini
    "},{"location":"food/spicy-shrimp/","title":"Spicy Shrimp","text":""},{"location":"food/spicy-shrimp/#ingredients","title":"Ingredients","text":"
    • Shrimp half pound
    • 1 onion
    • 3 cloves of garlic
    • Green onion
    • Pepper paste (gochujang)
    • Butter (?? Quantity)
    • Sugar
    • MSG thing (?? Quantity)
    • 1.5 spoonfulls cornstarch
    • Sesame oil
    "},{"location":"food/spicy-shrimp/#preparation","title":"Preparation","text":"
    • Salt the shrimp
    "},{"location":"food/spicy-shrimp/#cooking","title":"Cooking","text":"
    • Add onion
    • Add garlic
    • Add shrimp
    • Add cooking wine
    • Add pepper paste
    • Add water
    • Add butter
    • Add MSG thing
    • Add sugar to taste
    • Add green onion
    • In a separate bowl, add cornstarch
    • Add water to the separate bowl
    • Combine the cornstarch bowl with the sauce bowl
    • Add seasame oil to the mix
    "},{"location":"food/tempora/","title":"Tempora Recipe","text":""},{"location":"food/tempora/#ingredients","title":"Ingredients","text":"
    • Tempora from Korean market
    • 1 spoonful diced garlic
    • Pepper Powder
    • Half an onion
    • Green Onion
    • Soy sauce
    • Sugar
    "},{"location":"food/tempora/#cooking","title":"Cooking","text":"
    • Add the garlic
    • Stir for a bit
    • Add tiny amount of pepper powder
    • Add tempora
    • Add onion
    • Add soy sauce and sugar to taste
    • Stir at low heat for a long time
    • Add green onion as a garnish
    "},{"location":"server/cgit/","title":"Cgit with gitolite and caddy","text":""},{"location":"server/cgit/#setup","title":"Setup","text":"

    Install dependencies.

    # apt install cgit python-is-python3 python3-pygments python3-markdown docutils-common groff perl\n

    Make a git user.

    sudo adduser --system --shell /bin/bash --group --disabled-password --home /home/git git\n

    Allow ssh passwordless login.

    usermod -p '*' username\n
    "},{"location":"server/cgit/#gitolite","title":"Gitolite","text":"

    Install the gitolite package from the repository directly.

    "},{"location":"server/cgit/#configuration-with-cgit","title":"Configuration with cgit","text":"

    Configuration of gitolite is done by modifying $HOME/.gitolite.rc.

    To work correctly with cgit, gitweb and cgit configuration options need to work with gitolite.

    Change:

    GIT_CONFIG_KEYS  =>  '',\n

    To:

    GIT_CONFIG_KEYS  =>  '.*',\n

    To have permissions work correctly,

    Change:

    UMASK  =>  0077,\n

    To:

    UMASK  =>  0027,\n

    In the ENABLE field, add gitweb and cgit to the list.

    "},{"location":"server/cgit/#usage","title":"Usage","text":"

    Detailed usage of gitolite can be found here

    "},{"location":"server/cgit/#repository-ignore","title":"Repository ignore","text":"

    After cgit is configured, cgit can be told to ignore a repo with this syntax.

    repo gitolite-admin\n    config cgit.ignore=1\n
    "},{"location":"server/cgit/#adding-hooks-to-gitolite","title":"Adding Hooks to gitolite","text":"

    This page details how to add hooks to your repositories.

    Example hook that updates a website every git push. Make sure this directory is owned by git.

    #!/bin/sh\nGIT_WORK_TREE=/desired/website/directory git checkout -f\n
    "},{"location":"server/cgit/#cgit","title":"Cgit","text":""},{"location":"server/cgit/#running-cgit-with-caddy","title":"Running cgit with caddy","text":"

    Install the fcgiwrap package.

    Create a systemd service that wraps cgit with FastCGI.

    # systemctl edit --full --force cgit.service\n
    [Unit]\nDescription=CGI web interface to the Git SCM\nAfter=network.target\n\n[Service]\nType=exec\nExecStart=fcgiwrap -f -p \"/usr/lib/cgit/cgit.cgi\" -s tcp:127.0.0.1:8999\n\n[Install]\nWantedBy=multi-user.target\n
    # systemctl start cgit\n

    Add cgit configuration to caddy.

    git.joshuayun.com {\n        handle_path /cgit-css/* {\n                root * /usr/share/cgit/\n                file_server\n        }\n\n        handle {\n                reverse_proxy localhost:8999 {\n                        transport fastcgi {\n                                env DOCUMENT_ROOT /usr/lib/cgit/\n                                env SCRIPT_FILENAME /usr/lib/cgit/cgit.cgi\n                        }\n                }\n        }\n}\n
    "},{"location":"server/cgit/#cgit-configuration","title":"Cgit configuration","text":"

    More detailed documentation can be found on the cgitrc(5) manual.

    enable-git-config is used to allow for gitweb.* configurations in gitolite, e.g. description, owner.

    enable-git-config=1\n

    project-list sets where cgit looks for projects, this list is the one updated by gitolite

    project-list=/home/git/projects.list\n

    scan-path sets where the actual git repositories live

    scan-path=/home/git/repositories\n
    "},{"location":"server/cgit/#references","title":"References","text":"

    SixFoisNeuf Used this blog to run cgit using fcgiwrap rather than a caddy plugin. The entire cgit with caddy section was using his work.

    Mateja Maric Used this blog to help configure cgitrc, gitolite.rc

    Luke Hsiao Used the git user creation command from this blog.

    Omar Polo (yumh) Used this blog to help configure cgitrc for hidden repos.

    Bryan Brattlof Not much used here, kept as reference.

    "},{"location":"server/ddns/","title":"DDNS Setup","text":""},{"location":"server/ddns/#porkbun-api","title":"Porkbun API","text":"

    Follow this porkbun guide on enabling the api for your domain.

    "},{"location":"server/ddns/#ddns-updater","title":"ddns-updater","text":"

    ddns-updater is the program used to update Porkbun's A record of your domain.

    "},{"location":"server/ddns/#docker-install","title":"Docker install","text":"

    Install the docker package from official docker repositories.

    "},{"location":"server/ddns/#setup","title":"Setup","text":"

    Create a directory with config.json inside, and make sure that its owner has a uid of 1000.

    mkdir data\ntouch data/config.json\n# Owned by user ID of Docker container (1000)\nchown -R 1000 data\n# all access (for creating json database file data/updates.json)\nchmod 700 data\n# read access only\nchmod 400 data/config.json\n

    Configuration for porkbun in config.json

    {\n  \"settings\": [\n    {\n      \"provider\": \"porkbun\",\n      \"domain\": \"domain.com\",\n      \"host\": \"@\",\n      \"api_key\": \"PORKBUN SECRET KEY\",\n      \"secret_api_key\": \"PORKBUN API KEY\",\n      \"ip_version\": \"ipv4\"\n    }\n  ]\n}\n

    Optional \"ttl\" paramter specifing A record TTL not included.

    "},{"location":"server/ddns/#usage","title":"Usage","text":"
    docker run -d -p 8000:8000/tcp -v \"$(pwd)\"/data:/updater/data qmcgaw/ddns-updater\n

    This will start a docker container that will start updating the DNS records. Status updates can be seen in a web server by going to localhost:8000.

    "},{"location":"server/server/","title":"Homelab Server Setup","text":"

    This page describes how I setup my personal webserver

    I'm hosting a website, wiki, caldav using Radicale, git using cgit and Gitolite, and webdav support

    "},{"location":"server/server/#linux-distribution-used","title":"Linux Distribution Used","text":"

    Debian 12 Bookworm.

    Update the system.

    # apt update\n# apt upgrade\n
    "},{"location":"server/server/#ssh","title":"SSH","text":"

    Generate ssh keys

    ssh-keygen -t [keytype]\n

    Add ssh keys to ~/.ssh/authorized_keys

    ssh-copy-id -i /path/to/pubkey [user@]machine\n
    "},{"location":"server/server/#optional-security-enhancements","title":"Optional security enhancements","text":"

    Change the port in /etc/sshd_config to a nonstandard port to harden security.

    Port 1234\n

    Disable password login in /etc/sshd_config/

    PubkeyAuthentication yes\nChallengeResponseAuthentication no\nPasswordAuthentication no\nKbdInteractiveAuthentication no\nUsePAM no\n

    Disable XForwarding

    X11Forwarding no\n

    Disable remote root login

    PermitRootLogin no\n

    Disable root account

    $ sudo chsh -s /sbin/nologin root\n
    "},{"location":"server/server/#ddns","title":"DDNS","text":"

    Setup Dyanmic DNS (ddns) with Porkbun and ddns-updater.

    "},{"location":"server/server/#caddy","title":"Caddy","text":"

    Install the Caddy package from Caddy directly.

    "},{"location":"server/server/#cgit-gitolite","title":"Cgit & gitolite","text":"

    Setup cgit with gitolite and caddy.

    "},{"location":"server/server/#radicale","title":"Radicale","text":"

    Install the Radicale package.

    Start the Radicale service.

    systemctl enable radicale.service\nsystemctl start radicale.service\n

    Generate secure passwords using htpasswd.

    # Create a new htpasswd file with the user \"user1\"\n$ htpasswd -c /path/to/users user1\nNew password:\nRe-type new password:\n# Add another user\n$ htpasswd /path/to/users user2\nNew password:\nRe-type new password:\n

    Edit configuration to add users

    [auth]\ntype = htpasswd\nhtpasswd_filename = /path/to/users\n# encryption method used in the htpasswd file\nhtpasswd_encryption = md5\n

    Add configuration to caddy.

    caldav.joshuayun.com {\n    handle_path /* {\n        reverse_proxy localhost:5232 {\n        header_up X-Script-Name /radicale\n        }\n    }\n    handle_path /radicale/* {\n        reverse_proxy localhost:5232 {\n            header_up X-Script-Name /radicale\n        }\n    }\n}\n
    "},{"location":"server/server/#webdav","title":"Webdav","text":"

    Add the Webdav module to Caddy.

    sudo caddy add-package github.com/mholt/caddy-webdav\nsudo systemctl restart caddy\n

    Add Webdav to the Caddy configuration

    Example configuration with protected file browsing, see the github for more configurations.

    webdav.joshuayun.com {\n    @get method GET\n    root * WEBDAV_PATH\n    route {\n        basicauth {\n            joshua CADDY_HASH\n        }\n        file_server @get browse\n        webdav\n    }\n}\n

    To generate the hash:

    caddy hash-password\n
    "},{"location":"server/syncthing/","title":"Syncthing Setup","text":"

    I am currently using syncthing for my music to be synced across devices.

    "},{"location":"server/syncthing/#installation","title":"Installation","text":"

    Install the Syncthing package from upstream repositories.

    "},{"location":"server/syncthing/#reverse-proxy-setup-ref","title":"Reverse proxy setup [Ref]","text":"

    Example syncthing reverse proxy setup.

    sync.joshuayun.com {\n        handle_path /* {\n                reverse_proxy http://localhost:8384 {\n                        header_up Host {upstream_hostport}\n                }\n        }\n}\n

    Optional: Add a htpasswd to block unauthorized access to the syncthing.

    "},{"location":"server/syncthing/#syncthing-system-service-ref","title":"Syncthing system service [Ref]","text":"

    Enable the syncthing user service.

    systemctl enable syncthing@myuser.service\nsystemctl start syncthing@myuser.service\n
    "},{"location":"server/syncthing/#syncthing-configuration","title":"Syncthing configuration","text":"

    Done all through the gui. It is recommended to setup a user login, especially if you are making a syncthing that is exposed to the open internet.

    "}]} \ No newline at end of file diff --git a/site/server/cgit/index.html b/site/server/cgit/index.html index c9b840e..827dbe3 100644 --- a/site/server/cgit/index.html +++ b/site/server/cgit/index.html @@ -570,6 +570,113 @@ + + + + + +
  • + + + + + + + + + + + +
  • + + + + + + + + +
  • diff --git a/site/server/ddns/index.html b/site/server/ddns/index.html index 19abf31..e7fc4fd 100644 --- a/site/server/ddns/index.html +++ b/site/server/ddns/index.html @@ -519,6 +519,113 @@ + + + + + +
  • + + + + + + + + + + + +
  • + + + + + + + + +
  • diff --git a/site/server/server/index.html b/site/server/server/index.html index 3c2f02c..edf9cee 100644 --- a/site/server/server/index.html +++ b/site/server/server/index.html @@ -546,6 +546,113 @@ + + + + + +
  • + + + + + + + + + + + +
  • + + + + + + + + +
  • diff --git a/site/server/syncthing/index.html b/site/server/syncthing/index.html index edbd05c..f0f4217 100644 --- a/site/server/syncthing/index.html +++ b/site/server/syncthing/index.html @@ -504,6 +504,113 @@ + + + + + +
  • + + + + + + + + + + + +
  • + + + + + + + + +
  • diff --git a/site/sitemap.xml b/site/sitemap.xml index 2be839b..cf2d6e8 100644 --- a/site/sitemap.xml +++ b/site/sitemap.xml @@ -20,6 +20,21 @@ 2023-12-31 daily + + https://wiki.joshuayun.com/food/curry/ + 2023-12-31 + daily + + + https://wiki.joshuayun.com/food/spicy-shrimp/ + 2023-12-31 + daily + + + https://wiki.joshuayun.com/food/tempora/ + 2023-12-31 + daily + https://wiki.joshuayun.com/server/cgit/ 2023-12-31 diff --git a/site/sitemap.xml.gz b/site/sitemap.xml.gz index 75f7f0a..7b26453 100644 Binary files a/site/sitemap.xml.gz and b/site/sitemap.xml.gz differ -- cgit v1.2.3