From 25931b97cf3da95b034c9b5ee1ef6e242702c2a9 Mon Sep 17 00:00:00 2001
From: JMARyA <jmarya@hydrar.de>
Date: Wed, 10 Jul 2024 22:00:58 +0200
Subject: [PATCH 01/10] update dockerfile

---
 Dockerfile | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/Dockerfile b/Dockerfile
index 44fd850..babdf59 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -5,10 +5,10 @@ WORKDIR /app
 
 RUN cargo build --release
 
-FROM archlinux
+FROM debian:buster
 
-RUN pacman -Syu --noconfirm
-RUN pacman -S --noconfirm gnupg ca-certificates openssl-1.1
+RUN apt update && apt upgrade -y
+RUN apt install -y gnupg ca-certificates openssl
 
 COPY --from=builder /app/target/release/me-site /me-site
 COPY ./rocket.toml /rocket.toml

From a14bf933027ac3d8f06efd7c9c5664d544d4c793 Mon Sep 17 00:00:00 2001
From: JMARyA <jmarya@hydrar.de>
Date: Wed, 10 Jul 2024 22:14:19 +0200
Subject: [PATCH 02/10] fix content type

---
 src/pages/html.rs  |  8 ++++++--
 src/pages/index.rs | 19 +++++++++++++------
 2 files changed, 19 insertions(+), 8 deletions(-)

diff --git a/src/pages/html.rs b/src/pages/html.rs
index fe3b135..a369458 100644
--- a/src/pages/html.rs
+++ b/src/pages/html.rs
@@ -1,5 +1,6 @@
 use crate::config::Config;
 use maud::{html, PreEscaped, DOCTYPE};
+use rocket::http::ContentType;
 use rocket::request::{FromRequest, Outcome, Request};
 
 pub enum RequestClient {
@@ -37,7 +38,7 @@ pub async fn build_site(
     disable_color: bool,
     shadow: bool,
     config: &Config,
-) -> String {
+) -> (ContentType, String) {
     let mut c_class = "bg-dark text-white justify-content-center text-center".to_string();
     let mut c_style = String::new();
     let mut g_style = "a {text-decoration: none; font-weight: bold; color: white}".to_string();
@@ -64,7 +65,10 @@ pub async fn build_site(
             };
     };
 
-    build_site_from_body(title, &body.into_string())
+    (
+        ContentType::HTML,
+        build_site_from_body(title, &body.into_string()),
+    )
 }
 
 pub fn build_site_from_body(title: &str, body: &str) -> String {
diff --git a/src/pages/index.rs b/src/pages/index.rs
index a054a9b..cb7e40f 100644
--- a/src/pages/index.rs
+++ b/src/pages/index.rs
@@ -1,5 +1,6 @@
 use crate::config;
 use maud::{html, PreEscaped};
+use rocket::http::ContentType;
 use rocket::{form::Form, get, post, response::Redirect, uri, FromForm, State};
 use serde::{Deserialize, Serialize};
 
@@ -19,7 +20,7 @@ pub async fn message_post(msg: Form<MessageForm>, config: &State<config::Config>
 }
 
 #[get("/message")]
-pub async fn message_page(config: &State<config::Config>) -> String {
+pub async fn message_page(config: &State<config::Config>) -> (ContentType, String) {
     let post_uri = uri!(message_post).to_string();
 
     let resp = html! {
@@ -39,7 +40,10 @@ pub async fn message_page(config: &State<config::Config>) -> String {
 }
 
 #[get("/mirrors.txt")]
-pub async fn mirrors(r: RequestClient, config: &State<config::Config>) -> Option<String> {
+pub async fn mirrors(
+    r: RequestClient,
+    config: &State<config::Config>,
+) -> Option<(ContentType, String)> {
     if let Ok(mirror_file) = std::fs::File::open("./config/mirrors.txt") {
         let content = std::io::read_to_string(mirror_file).ok()?;
         if matches!(r, RequestClient::Browser) {
@@ -53,14 +57,17 @@ pub async fn mirrors(r: RequestClient, config: &State<config::Config>) -> Option
 
             return Some(build_site(resp.into_string(), "Mirrors", false, true, config).await);
         }
-        return Some(content);
+        return Some((ContentType::Plain, content));
     }
 
     None
 }
 
 #[get("/public_key")]
-pub async fn public_key(r: RequestClient, config: &State<config::Config>) -> Option<String> {
+pub async fn public_key(
+    r: RequestClient,
+    config: &State<config::Config>,
+) -> Option<(ContentType, String)> {
     if matches!(r, RequestClient::Browser) {
         let host = config.base_url();
         let key = std::io::read_to_string(
@@ -90,7 +97,7 @@ pub async fn public_key(r: RequestClient, config: &State<config::Config>) -> Opt
 
     if let Ok(key_f) = std::fs::File::open("./config/pub.key") {
         if let Ok(key_data) = std::io::read_to_string(key_f) {
-            return Some(key_data);
+            return Some((ContentType::Plain, key_data));
         }
     }
 
@@ -160,7 +167,7 @@ fn build_donation_block(conf: &config::Config) -> String {
 }
 
 #[get("/")]
-pub async fn index(conf: &State<config::Config>) -> String {
+pub async fn index(conf: &State<config::Config>) -> (ContentType, String) {
     let information_block = build_information_block(conf);
     let contact_block = build_contact_block(conf);
     let donation_block = build_donation_block(conf);

From aa594ec1d87286b72fc419ea67e9f08fd48bb13e Mon Sep 17 00:00:00 2001
From: JMARyA <jmarya@hydrar.de>
Date: Wed, 10 Jul 2024 22:18:23 +0200
Subject: [PATCH 03/10] fix ua

---
 src/pages/html.rs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/pages/html.rs b/src/pages/html.rs
index a369458..7ded392 100644
--- a/src/pages/html.rs
+++ b/src/pages/html.rs
@@ -25,7 +25,7 @@ impl<'r> FromRequest<'r> for RequestClient {
 pub fn is_browser(req: &Request) -> bool {
     let ua = req
         .headers()
-        .get("usesr-agent")
+        .get("User-Agent")
         .next()
         .unwrap()
         .to_lowercase();

From ba6cb5ea6d4da8c0f31fde8ab7badd4f82ce2601 Mon Sep 17 00:00:00 2001
From: JMARyA <jmarya@hydrar.de>
Date: Sat, 13 Jul 2024 05:40:10 +0200
Subject: [PATCH 04/10] fix bs

---
 src/pages/bootstrap.rs | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/src/pages/bootstrap.rs b/src/pages/bootstrap.rs
index b2a45da..4935ae9 100644
--- a/src/pages/bootstrap.rs
+++ b/src/pages/bootstrap.rs
@@ -11,21 +11,17 @@ async fn download_file(url: &str, file: &str) {
 
 #[get("/bootstrap.min.css")]
 pub async fn bootstrap_css() -> Option<NamedFile> {
-    NamedFile::open("./cache/bootstrap.mi.await.ok()n.css")
-        .await
-        .ok()
+    NamedFile::open("./cache/bootstrap.min.css").await.ok()
 }
 
 #[get("/bootstrap-icons.css")]
 pub async fn bootstrap_icons() -> Option<NamedFile> {
-    NamedFile::open("./cache/bootstrap-icon.await.ok()s.css")
-        .await
-        .ok()
+    NamedFile::open("./cache/bootstrap-icons.css").await.ok()
 }
 
 #[get("/bootstrap.bundle.min.js")]
 pub async fn bootstrap_js() -> Option<NamedFile> {
-    NamedFile::open("./cache/bootstrap.b.await.ok()undle.min.js")
+    NamedFile::open("./cache/bootstrap.bundle.min.js")
         .await
         .ok()
 }

From 717d343acc3b77b254ca6513e935f2c459ff8524 Mon Sep 17 00:00:00 2001
From: JMARyA <jmarya@hydrar.de>
Date: Mon, 15 Jul 2024 21:39:16 +0200
Subject: [PATCH 05/10] forgejo

---
 {.gitea => .forgejo}/workflows/deploy.yml | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename {.gitea => .forgejo}/workflows/deploy.yml (100%)

diff --git a/.gitea/workflows/deploy.yml b/.forgejo/workflows/deploy.yml
similarity index 100%
rename from .gitea/workflows/deploy.yml
rename to .forgejo/workflows/deploy.yml

From 065ab4979d897d4d3206e6f9b13cf6294856a65b Mon Sep 17 00:00:00 2001
From: JMARyA <jmarya@hydrar.de>
Date: Thu, 25 Jul 2024 22:50:22 +0200
Subject: [PATCH 06/10] docker

---
 .forgejo/workflows/deploy.yml | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/.forgejo/workflows/deploy.yml b/.forgejo/workflows/deploy.yml
index bc17b6b..3f162c4 100644
--- a/.forgejo/workflows/deploy.yml
+++ b/.forgejo/workflows/deploy.yml
@@ -16,6 +16,11 @@ jobs:
       - name: Install Docker
         run: curl -fsSL https://get.docker.com | sh
 
+      - name: Start Docker daemon
+        run: |
+          dockerd > /dev/null 2>&1 &
+          sleep 5
+
       - name: Log in to Docker registry
         run: echo "${{ secrets.registry_password }}" | docker login -u "${{ secrets.registry_user }}" --password-stdin git.hydrar.de
 

From 2a093b3a88a3d2090e8c970f2071ad0c872f8942 Mon Sep 17 00:00:00 2001
From: JMARyA <jmarya@hydrar.de>
Date: Thu, 25 Jul 2024 22:58:01 +0200
Subject: [PATCH 07/10] update

---
 .forgejo/workflows/deploy.yml | 25 +++++++++++++------------
 1 file changed, 13 insertions(+), 12 deletions(-)

diff --git a/.forgejo/workflows/deploy.yml b/.forgejo/workflows/deploy.yml
index 3f162c4..ce499b7 100644
--- a/.forgejo/workflows/deploy.yml
+++ b/.forgejo/workflows/deploy.yml
@@ -13,18 +13,19 @@ jobs:
       - name: Checkout repository
         uses: actions/checkout@v2
 
-      - name: Install Docker
-        run: curl -fsSL https://get.docker.com | sh
+      - name: Set up Docker Buildx
+        uses: docker/setup-buildx-action@v2
 
-      - name: Start Docker daemon
-        run: |
-          dockerd > /dev/null 2>&1 &
-          sleep 5
-
-      - name: Log in to Docker registry
-        run: echo "${{ secrets.registry_password }}" | docker login -u "${{ secrets.registry_user }}" --password-stdin git.hydrar.de
+      - name: Log in to Docker Hub
+        uses: docker/login-action@v2
+        with:
+          registry: git.hydrar.de
+          username: ${{ secrets.registry_user }}
+          password: ${{ secrets.registry_password }}
 
       - name: Build and push Docker image
-        run: |
-          docker build -t git.hydrar.de/jmarya/me-site:latest -t git.hydrar.de/jmarya/me-site:latest-amd64 .
-          docker push git.hydrar.de/jmarya/me-site:latest
+        uses: docker/build-push-action@v4
+        with:
+          context: .
+          push: true
+          tags: git.hydrar.de/jmarya/me-site:latest
\ No newline at end of file

From 56a4dc46c16159e801cfe15a5b08383924ea42e3 Mon Sep 17 00:00:00 2001
From: JMARyA <jmarya@hydrar.de>
Date: Thu, 25 Jul 2024 23:15:24 +0200
Subject: [PATCH 08/10] update

---
 .forgejo/workflows/deploy.yml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/.forgejo/workflows/deploy.yml b/.forgejo/workflows/deploy.yml
index ce499b7..67e9a17 100644
--- a/.forgejo/workflows/deploy.yml
+++ b/.forgejo/workflows/deploy.yml
@@ -8,6 +8,8 @@ on:
 jobs:
   deploy:
     runs-on: ubuntu-latest
+    container:
+      image: docker:dind
 
     steps:
       - name: Checkout repository

From fec491247672690796a4e20c961109f8868b17d1 Mon Sep 17 00:00:00 2001
From: JMARyA <jmarya@hydrar.de>
Date: Thu, 25 Jul 2024 23:19:15 +0200
Subject: [PATCH 09/10] update

---
 .forgejo/workflows/deploy.yml | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/.forgejo/workflows/deploy.yml b/.forgejo/workflows/deploy.yml
index 67e9a17..ed04b2d 100644
--- a/.forgejo/workflows/deploy.yml
+++ b/.forgejo/workflows/deploy.yml
@@ -7,9 +7,7 @@ on:
 
 jobs:
   deploy:
-    runs-on: ubuntu-latest
-    container:
-      image: docker:dind
+    runs-on: host
 
     steps:
       - name: Checkout repository

From d97d02c0df0f2bdae5c9dc23b6f40bb55c016f0d Mon Sep 17 00:00:00 2001
From: JMARyA <jmarya@hydrar.de>
Date: Thu, 25 Jul 2024 23:48:11 +0200
Subject: [PATCH 10/10] arm

---
 .forgejo/workflows/deploy.yml | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/.forgejo/workflows/deploy.yml b/.forgejo/workflows/deploy.yml
index ed04b2d..edef09f 100644
--- a/.forgejo/workflows/deploy.yml
+++ b/.forgejo/workflows/deploy.yml
@@ -13,6 +13,9 @@ jobs:
       - name: Checkout repository
         uses: actions/checkout@v2
 
+      - name: Set up QEMU
+        uses: docker/setup-qemu-action@v3
+
       - name: Set up Docker Buildx
         uses: docker/setup-buildx-action@v2
 
@@ -27,5 +30,6 @@ jobs:
         uses: docker/build-push-action@v4
         with:
           context: .
+          platforms: linux/amd64,linux/arm64
           push: true
-          tags: git.hydrar.de/jmarya/me-site:latest
\ No newline at end of file
+          tags: git.hydrar.de/jmarya/me-site:latest