From aa2528adf2e9e7d1d1e8baed2d6fda511a0502d9 Mon Sep 17 00:00:00 2001 From: forever2k38 Date: Sat, 5 Sep 2026 01:34:40 +0200 Subject: initial commit --- .forgejo/workflows/deploy.yaml | 33 +++++++++++++++++ .gitignore | 13 +++++++ LICENSE | 7 ++++ archetypes/default.md | 5 +++ assets/img/favicon.png | Bin 0 -> 294596 bytes assets/scss/fonts.scss | 10 +++++ assets/scss/main.scss | 41 +++++++++++++++++++++ content/_index.md | 6 +++ content/blog/_index.md | 3 ++ content/blog/einfach.md | 39 ++++++++++++++++++++ content/blog/software.md | 82 +++++++++++++++++++++++++++++++++++++++++ content/donate.md | 9 +++++ content/politics.md | 26 +++++++++++++ hugo.toml | 17 +++++++++ layouts/_default/list.html | 7 ++++ layouts/_partials/head.html | 14 +++++++ layouts/baseof.html | 29 +++++++++++++++ layouts/home.html | 3 ++ layouts/page.html | 6 +++ static/fonts/Go-Mono.ttf | Bin 0 -> 173248 bytes 20 files changed, 350 insertions(+) create mode 100644 .forgejo/workflows/deploy.yaml create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 archetypes/default.md create mode 100644 assets/img/favicon.png create mode 100644 assets/scss/fonts.scss create mode 100644 assets/scss/main.scss create mode 100644 content/_index.md create mode 100644 content/blog/_index.md create mode 100644 content/blog/einfach.md create mode 100644 content/blog/software.md create mode 100644 content/donate.md create mode 100644 content/politics.md create mode 100644 hugo.toml create mode 100644 layouts/_default/list.html create mode 100644 layouts/_partials/head.html create mode 100644 layouts/baseof.html create mode 100644 layouts/home.html create mode 100644 layouts/page.html create mode 100644 static/fonts/Go-Mono.ttf diff --git a/.forgejo/workflows/deploy.yaml b/.forgejo/workflows/deploy.yaml new file mode 100644 index 0000000..e6d3a03 --- /dev/null +++ b/.forgejo/workflows/deploy.yaml @@ -0,0 +1,33 @@ +name: Deploy Hugo to Codeberg Pages + +on: + push: + branches: [main] + workflow_dispatch: + +jobs: + deploy: + runs-on: codeberg-tiny + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: recursive + fetch-depth: 0 + + - name: Setup Hugo + uses: https://github.com/peaceiris/actions-hugo@v3 + with: + hugo-version: "0.164.0" + extended: true + + - name: Build + run: hugo --gc --minify --baseURL https://forever2k38.net/ + + - name: Deploy to Codeberg Pages + uses: https://codeberg.org/git-pages/action@v2 + with: + site: https://forever2k38.net/ + server: codeberg.page + token: ${{ forgejo.token }} + source: public/ diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..86c95ef --- /dev/null +++ b/.gitignore @@ -0,0 +1,13 @@ +# Generated files by hugo +/public/ +/resources/_gen/ +/assets/jsconfig.json +hugo_stats.json + +# Executable may be added to repository +hugo.exe +hugo.darwin +hugo.linux + +# Temporary lock file while building +/.hugo_build.lock diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..3b4956a --- /dev/null +++ b/LICENSE @@ -0,0 +1,7 @@ +Copyright © 2026 forever2k38 + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/archetypes/default.md b/archetypes/default.md new file mode 100644 index 0000000..25b6752 --- /dev/null +++ b/archetypes/default.md @@ -0,0 +1,5 @@ ++++ +date = '{{ .Date }}' +draft = true +title = '{{ replace .File.ContentBaseName "-" " " | title }}' ++++ diff --git a/assets/img/favicon.png b/assets/img/favicon.png new file mode 100644 index 0000000..c3864f8 Binary files /dev/null and b/assets/img/favicon.png differ diff --git a/assets/scss/fonts.scss b/assets/scss/fonts.scss new file mode 100644 index 0000000..4598947 --- /dev/null +++ b/assets/scss/fonts.scss @@ -0,0 +1,10 @@ +@font-face { + font-family: "Go Mono"; + src: url("/fonts/Go-Mono.ttf"); +} + +* { + font-family: "Go Mono"; +} + + diff --git a/assets/scss/main.scss b/assets/scss/main.scss new file mode 100644 index 0000000..ae917c9 --- /dev/null +++ b/assets/scss/main.scss @@ -0,0 +1,41 @@ +@use 'fonts.scss'; + +* { + color: #f0f0f0; +} + +html { + background: #0e0614; +} + +header { + text-align: center; +} + +header h1 { + font-style: italic; +} + +nav a { + padding: 0 0.1rem; +} + +footer { + text-align: center; +} + +h1 a { + text-decoration: none; +} + +code { + overflow-wrap: anywhere; +} + +.content { + max-width: 50rem; + + text-wrap: pretty; + + margin: auto; +} diff --git a/content/_index.md b/content/_index.md new file mode 100644 index 0000000..b7cfb35 --- /dev/null +++ b/content/_index.md @@ -0,0 +1,6 @@ ++++ +title = "forever2k38" ++++ + +i'm forever2k38, your local idiot. i do dumb shit online and occasionally develop useful software. + diff --git a/content/blog/_index.md b/content/blog/_index.md new file mode 100644 index 0000000..dab4d39 --- /dev/null +++ b/content/blog/_index.md @@ -0,0 +1,3 @@ ++++ +title = 'blog' ++++ diff --git a/content/blog/einfach.md b/content/blog/einfach.md new file mode 100644 index 0000000..fd87c8d --- /dev/null +++ b/content/blog/einfach.md @@ -0,0 +1,39 @@ ++++ +date = '2026-09-04' +draft = false +title = 'why i made einfach' +tags = ["einfach"] ++++ + +**note that einfach doesn't work yet, is highly experimental and sources aren't public** + +einfach is my independent source based linux distribution. + +it's simple, proritizes user choice and uses a custom [lua](https://lua.org) based package manager ([pow!](https://codeberg.org/einfach/pow)). + +i made it for the same reason most distros exist. none of them work for me. + +here's a list of criteria: +- no GNU (rules out [gentoo](https://gentoo.org)) +- runit/openrc +- source based +- busybox (rules out [chimera](https://chimera-linux.org)) +- libc++ (rules out [alpine](https://alpinelinux.org)) +- X11 (rules out KISS Linux) + +## gentoo + +[Gentoo](https://gentoo.org) is a great distro. However, it heavily depends on GNU coreutils (specifically bash). + +## alpine + +[Alpine](https://alpinelinux.org) uses libstdc++ and isn't source based. + +## chimera + +[Chimera](https://chimera-linux.org) is so close but uses FreeBSD userland instead of busybox and uses dinit. + +## kiss linux + +[KISS](https://kisscommunity.org/) looks great but it only supports Wayland. + diff --git a/content/blog/software.md b/content/blog/software.md new file mode 100644 index 0000000..aa3b88c --- /dev/null +++ b/content/blog/software.md @@ -0,0 +1,82 @@ ++++ +title = "software" ++++ + +most software is not based. there are exceptions tho. + +# based + +## messengers + +there are 3 good messengers. + +### XMPP + +[xmpp](https://xmpp.org) is the best messaging protocol. it's an open standard with many client (and server) implementations. + +### Matrix + +[matrix](https://matrix.org) is another open standard. less based than XMPP because of its stupid federation architecture. + +DO NOT USE `matrix.org` AS YOUR HOMESERVER. Use [unredacted.org](https://unredacted.org) or [private.coffee](https://private.coffee). + +### Signal + +[signal](https://signal.org/) is an e2ee messenger. it requires a phone number to sign up, is not federated but is still a good messenger. + +it has some of the coolest crypto tech in any messenger (fun fact: most e2ee messengers use the signal protocol). + +## os + +### linux + +[linux](https://kernel.org) is the most popular libre kernel. i recommend [einfach](/projects/einfach), [gentoo](https://gentoo.org) and [alpine](https://alpinelinux.org). + +### busybox + +[busybox](https://busybox.net) is a tiny coreutils implementation in a single binary. + +### freebsd + +[freebsd](https://freebsd.org) is a full operating system, while linux is just a kernel which is combined with userspace tools. + +### openbsd + +[openbsd](https://openbsd.org) is also a full operating system. it's secure as fuck but lacks some software support. + +### runit + +[runit](https://smarden.org/runit/) is based. it's simple, small and just works. + +# not based + +**beware: garbage ahead** + +## os + +### windows + +the most popular desktop operating system. it's slow, bloated, sends tons of data back to microsoft and is harder to use than some linux distributions. + +### macos + +**"garbage, but apple" ~ forever2k38, 2026** + +the same bullshit. only slightly better since it's unix like. + +### systemd + +why does it need 750k lines of C? [runit](https://smarden.org/runit/), [sysklogd](https://github.com/troglobit/sysklogd) and a few more daemons provide all of its functionality. + +### gnu + +gnu extensions are cancer and only exist to lock people into using gnu software. + +## messengers + +### discord + +**"bad irc"** + +discord really is garbage. it's proprietary, the desktop client is electron based, it's not e2ee and it scans all of your messages. + diff --git a/content/donate.md b/content/donate.md new file mode 100644 index 0000000..22f67c2 --- /dev/null +++ b/content/donate.md @@ -0,0 +1,9 @@ ++++ +title = "donate" ++++ + +why? but if you insist + +monero: `86TztmksomhVU8n75HJAwF8bsbc9fSQYKGUKmXQ8y7Fi7Ew9MD4KgpsdeGHCDzzKAbNL22tpnnGNGKQtuLijjYRzTAwkPHC` + +thank you so much if you actually donate, it means the world to me. diff --git a/content/politics.md b/content/politics.md new file mode 100644 index 0000000..ea0d07c --- /dev/null +++ b/content/politics.md @@ -0,0 +1,26 @@ ++++ +title = "politics" ++++ + +You don't need to know most of my political views. I'm just going to list a few here. + +## transparency + +Every single cent spent by the government should be logged and publicly accessible. + +## privacy + +Both online and offline. + +I support laws such as the [GDPR](https://eur-lex.europa.eu/EN/legal-content/summary/general-data-protection-regulation-gdpr.html) and FADP. + +I oppose mass surveillance companies (read: spyware) such as [Palantir](https://en.wikipedia.org/wiki/Palantir). + +## encryption + +There shouldn't be any laws that restrict encryption. + +## free speech + +I believe in ultimate, unrestricted free speech against governments and politicians. Governments have been using "hate speech" as an excuse to punish protesters for long enough. + diff --git a/hugo.toml b/hugo.toml new file mode 100644 index 0000000..ec9ba7b --- /dev/null +++ b/hugo.toml @@ -0,0 +1,17 @@ +baseURL = 'https://forever2k38.net' +locale = 'en-us' +title = 'forever2k38' + +[menus] + [[menus.main]] + name = 'blog' + pageRef = '/blog' + weight = 5 + [[menus.main]] + name = 'politics' + pageRef = '/politics' + weight = 10 + [[menus.main]] + name = 'donate' + pageRef = '/donate' + weight = 9999 diff --git a/layouts/_default/list.html b/layouts/_default/list.html new file mode 100644 index 0000000..c2e7875 --- /dev/null +++ b/layouts/_default/list.html @@ -0,0 +1,7 @@ +{{ define "main" }} +

{{ .Title }}

+ {{ .Content }} + {{ range .Pages }} +

{{ .LinkTitle }}

+ {{ end }} +{{ end }} diff --git a/layouts/_partials/head.html b/layouts/_partials/head.html new file mode 100644 index 0000000..1689fcc --- /dev/null +++ b/layouts/_partials/head.html @@ -0,0 +1,14 @@ +forever2k38 + +{{ $scss := resources.Get "scss/main.scss" }} +{{ $css := $scss | toCSS (dict "transpiler" "dartsass") | minify | fingerprint }} + + +{{ $favicon := resources.Get "img/favicon.png" }} + diff --git a/layouts/baseof.html b/layouts/baseof.html new file mode 100644 index 0000000..291be14 --- /dev/null +++ b/layouts/baseof.html @@ -0,0 +1,29 @@ + + + + {{ partial "head.html" . }} + + +
+

forever2k38

+ + +
+ + +
+
+ {{ block "main" . }} + {{ end }} +
+
+ + + + diff --git a/layouts/home.html b/layouts/home.html new file mode 100644 index 0000000..e0e8308 --- /dev/null +++ b/layouts/home.html @@ -0,0 +1,3 @@ +{{ define "main" }} + {{ .Content }} +{{ end }} diff --git a/layouts/page.html b/layouts/page.html new file mode 100644 index 0000000..79b5a0e --- /dev/null +++ b/layouts/page.html @@ -0,0 +1,6 @@ +{{ define "main" }} +
+

{{ .Title }}

+ {{ .Content }} +
+{{ end }} diff --git a/static/fonts/Go-Mono.ttf b/static/fonts/Go-Mono.ttf new file mode 100644 index 0000000..853d473 Binary files /dev/null and b/static/fonts/Go-Mono.ttf differ -- cgit v1.3