diff --git a/README.md b/README.md index d607f8d..ef9391a 100644 --- a/README.md +++ b/README.md @@ -4,14 +4,14 @@ Quick deploy instructions for an nginx host (Debian/Ubuntu): 1. Copy files to the web root on the server: - sudo mkdir -p /var/www/marcus - sudo cp -r "*" /var/www/marcus/ # run from the project folder or copy files individually - sudo chown -R www-data:www-data /var/www/marcus + sudo mkdir -p /var/www/html + sudo cp -r . /var/www/html/ + sudo chown -R www-data:www-data /var/www/html -2. Place the nginx server block (nginx/marcus_allison.conf) into `/etc/nginx/sites-available/` and enable it: +2. Configure nginx with your own server block and enable it: - sudo cp "nginx/marcus_allison.conf" /etc/nginx/sites-available/marcus_allison - sudo ln -s /etc/nginx/sites-available/marcus_allison /etc/nginx/sites-enabled/ + sudo cp /path/to/your/site.conf /etc/nginx/sites-available/website-but-better + sudo ln -sf /etc/nginx/sites-available/website-but-better /etc/nginx/sites-enabled/ 3. Test nginx config and reload: @@ -21,41 +21,44 @@ Quick deploy instructions for an nginx host (Debian/Ubuntu): 4. (Optional) Provision HTTPS with Certbot (Let's Encrypt): sudo apt update && sudo apt install certbot python3-certbot-nginx - sudo certbot --nginx -d portfolio.example.com -d www.portfolio.example.com + sudo certbot --nginx -d yourdomain.example.com -d www.yourdomain.example.com 5. Docker alternative (serve static site with nginx container): docker run --rm -p 80:80 -v "$(pwd):/usr/share/nginx/html:ro" nginx:stable Customize: -- Replace `portfolio.example.com` with your real domain. -- Update contact email in `index.html` (now set to marcus.sailer@organic-server.org). +- Replace `yourdomain.example.com` with your real domain. +- Update contact email in `index.html`. +- The homepage uses `the server.jpg` as a small lab snapshot; formal photography should live in `images/`. Photography gallery: -- To regenerate `images/manifest.json` after adding/removing photos, run: +- To regenerate `images/manifest.json` after adding or removing photos, run: ```bash -python3 scripts/generate_manifest.py +py -3 scripts/generate_manifest.py ``` - Alternatively, enable Nginx directory listing for `/images/` so the site can probe the directory. Example server block fragment for `/images/` only: ``` location /images/ { - alias /var/www/marcus/images/; + alias /var/www/html/images/; autoindex on; } ``` Blog support: -- Add plain text files to the `blog/` directory. Supported extensions are `.txt` and `.text`. Each file should start with a date/time line, then a title line, then the body. +- Add plain text files to the `blog/` directory. Supported extensions are `.txt` and `.text`. +- Each file should start with a date/time line, then a title line, then the body. - To attach a file, place it in `blog/files/` and reference it in the post with `[[file: filename.ext]]` or `[[attachment: filename.ext]]`. -- Run `python3 scripts/generate_blog_manifest.py` from the project root to refresh `blog/manifest.json` after adding or removing posts. +- Run `py -3 scripts/generate_blog_manifest.py` from the project root to refresh `blog/manifest.json` after adding or removing posts. Git sync: -- Use `./scripts/sync_site.sh` from the website root to pull changes from Git via HTTP. -- The default remote is `https://git.organic-server.org/organic-CPU/website-but-better.git` and the branch is `main`. -- By default it deploys to `/var/www/html`, which is the default nginx document root on most Linux distributions. +- Run the sync script from anywhere by invoking the repo script path, for example `./scripts/sync_site.sh` from the repo root or `/path/to/website-but-better/scripts/sync_site.sh` from another directory. +- The script uses its own location to find the repo root, so it does not need to be started from the web root. +- The default remote is `https://git.organic-server.org/organic-CPU/website-but-better.git` and the default branch is `main`. +- By default it deploys to `/var/www/html`. - Override with `GIT_REPO_URL`, `GIT_BRANCH`, or `DEPLOY_DIR` if needed. Automatic sync every 12 hours: @@ -68,7 +71,7 @@ sudo systemctl daemon-reload sudo systemctl enable --now sync_site.timer ``` -This makes the website sync twice per day and deploy the latest files to nginx root. +This makes the website sync twice per day and deploy the latest files to the nginx root. Editing the Git link: - Update the header Git link in `index.html` at the element with id `git-link` to your repository URL. diff --git a/blog.html b/blog.html index 4651bfb..7c8a976 100644 --- a/blog.html +++ b/blog.html @@ -3,7 +3,7 @@ - Blog — Marcus Allison + Blog — Marcus Sailer @@ -28,7 +28,7 @@ diff --git a/blog/2026-06-06.text b/blog/2026-06-06.text deleted file mode 100644 index cb86898..0000000 --- a/blog/2026-06-06.text +++ /dev/null @@ -1,4 +0,0 @@ -2026-07-09 18:30 -Welco - -This blog is a simple read-only collection of notes from my home lab and self-hosting experiments. Add a new text file to the `blog/` folder with a date/time on the first line, a title on the second line, and the content after a blank line. diff --git a/blog/2026-07-09-welcome.txt b/blog/2026-07-09-welcome.txt deleted file mode 100644 index c24382c..0000000 --- a/blog/2026-07-09-welcome.txt +++ /dev/null @@ -1,4 +0,0 @@ -2026-07-09 18:30 -Welcome to the blog - -This blog is a simple read-only collection of notes from my home lab and self-hosting experiments. Add a new text file to the `blog/` folder with a date/time on the first line, a title on the second line, and the content after a blank line. diff --git a/blog/2026-07-10-attachment-test.txt b/blog/2026-07-10-attachment-test.txt deleted file mode 100644 index f3986bf..0000000 --- a/blog/2026-07-10-attachment-test.txt +++ /dev/null @@ -1,6 +0,0 @@ -2026-07-10 12:45 -Attachment test - -This post includes a referenced attachment file. - -You can download it here: [[file: sample-attachment.txt]] diff --git a/blog/files/sample-attachment.txt b/blog/files/example-attachment.txt similarity index 98% rename from blog/files/sample-attachment.txt rename to blog/files/example-attachment.txt index cdf7456..f9d4a48 100644 --- a/blog/files/sample-attachment.txt +++ b/blog/files/example-attachment.txt @@ -1 +1 @@ -This is a sample attachment file used to test blog file linking. +This is a sample attachment file used to test blog file linking. \ No newline at end of file diff --git a/blog/the first post.text b/blog/the first post.text new file mode 100644 index 0000000..b583d46 --- /dev/null +++ b/blog/the first post.text @@ -0,0 +1,7 @@ +2026-07-09 12:00 +My Self-Hosted Portfolio Website + +Finally got around to building a proper home for my lab. Instead of throwing people a list of subdomains, I now have a clean landing page that actually explains what I'm doing and why it matters. +The site has the essentials: a professional summary, a skills showcase (with a dedicated photography card because that's a big part of my life), a gallery that loads from a manifest and supports fullscreen modal viewing, a server snapshot, and a simple contact block. I kept the design consistent with a red theme and made sure everything loads fast without unnecessary bloat. +The deployment is fully automated too. A script pulls the latest repo changes, regenerates manifests, and pushes everything to /var/www/html. I set up a systemd timer to run it every twelve hours, so the site stays fresh without me lifting a finger. The blog runs off plain text files and sorts posts newest-first, which is exactly the kind of simplicity I love about self-hosting. +This post includes a referenced attachment file just to demonstrate the system. You can download it here: [[file: example-attachment.txt]] diff --git a/index.html b/index.html index 67c8c6c..efc6796 100644 --- a/index.html +++ b/index.html @@ -3,13 +3,13 @@ - Marcus Allison - Systems Administrator & Self-Hosting Portfolio + Marcus Sailer - Systems Administrator & Self-Hosting Portfolio