diff options
| -rw-r--r-- | .forgejo/workflows/deploy.yaml | 33 | ||||
| -rw-r--r-- | .gitignore | 13 | ||||
| -rw-r--r-- | LICENSE | 7 | ||||
| -rw-r--r-- | archetypes/default.md | 5 | ||||
| -rw-r--r-- | assets/img/favicon.png | bin | 0 -> 294596 bytes | |||
| -rw-r--r-- | assets/scss/fonts.scss | 10 | ||||
| -rw-r--r-- | assets/scss/main.scss | 41 | ||||
| -rw-r--r-- | content/_index.md | 6 | ||||
| -rw-r--r-- | content/blog/_index.md | 3 | ||||
| -rw-r--r-- | content/blog/einfach.md | 39 | ||||
| -rw-r--r-- | content/blog/software.md | 82 | ||||
| -rw-r--r-- | content/donate.md | 9 | ||||
| -rw-r--r-- | content/politics.md | 26 | ||||
| -rw-r--r-- | hugo.toml | 17 | ||||
| -rw-r--r-- | layouts/_default/list.html | 7 | ||||
| -rw-r--r-- | layouts/_partials/head.html | 14 | ||||
| -rw-r--r-- | layouts/baseof.html | 29 | ||||
| -rw-r--r-- | layouts/home.html | 3 | ||||
| -rw-r--r-- | layouts/page.html | 6 | ||||
| -rw-r--r-- | static/fonts/Go-Mono.ttf | bin | 0 -> 173248 bytes |
20 files changed, 350 insertions, 0 deletions
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 @@ -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 Binary files differnew file mode 100644 index 0000000..c3864f8 --- /dev/null +++ b/assets/img/favicon.png 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" }} + <h1>{{ .Title }}</h1> + {{ .Content }} + {{ range .Pages }} + <h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2> + {{ 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 @@ +<title>forever2k38</title> + +{{ $scss := resources.Get "scss/main.scss" }} +{{ $css := $scss | toCSS (dict "transpiler" "dartsass") | minify | fingerprint }} +<link rel="stylesheet" + href="{{ $css.RelPermalink }}" + integrity="{{ $css.Data.Integrity }}" + crossorigin="anonymous"> + +{{ $favicon := resources.Get "img/favicon.png" }} +<link rel="icon" + href="{{ $favicon.RelPermalink }}" + integrity="{{ $css.Data.Integrity }}" + crossorigin = "anonymous"> 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 @@ +<!DOCTYPE html> +<html> + <head> + {{ partial "head.html" . }} + </head> + <body> + <header> + <h1><a href="/">forever2k38</a></h1> + + <nav> + {{- range .Site.Menus.main }} + <a {{ with .Params.class -}} class="{{ . }}" {{ end -}} href="{{ .URL }}">{{ .Name }}</a> + {{- end }} + </nav> + </header> + + + <main> + <div class="content"> + {{ block "main" . }} + {{ end }} + </div> + </main> + + <footer> + <p>copyright (c) 2026 forever2k38</p> + </footer> + </body> +</html> 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" }} + <div class="content"> + <h1>{{ .Title }}</h1> + {{ .Content }} + </div> +{{ end }} diff --git a/static/fonts/Go-Mono.ttf b/static/fonts/Go-Mono.ttf Binary files differnew file mode 100644 index 0000000..853d473 --- /dev/null +++ b/static/fonts/Go-Mono.ttf |
