init
This commit is contained in:
61
flake.lock
generated
Normal file
61
flake.lock
generated
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"flake-utils": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731533236,
|
||||||
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1704290814,
|
||||||
|
"narHash": "sha256-LWvKHp7kGxk/GEtlrGYV68qIvPHkU9iToomNFGagixU=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "70bdadeb94ffc8806c0570eb5c2695ad29f0e421",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-23.05",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
||||||
38
flake.nix
Normal file
38
flake.nix
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
{
|
||||||
|
description = "Serve static website using Caddy";
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
# Use flake-utils for better structure
|
||||||
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
|
|
||||||
|
# Fetch nixpkgs flake to get the latest Caddy package
|
||||||
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-23.05"; # Adjust for your desired version
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs =
|
||||||
|
{
|
||||||
|
self,
|
||||||
|
nixpkgs,
|
||||||
|
flake-utils,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
flake-utils.lib.eachSystem [ "x86_64-linux" "aarch64-linux" ] (
|
||||||
|
system:
|
||||||
|
let
|
||||||
|
pkgs = import nixpkgs { inherit system; };
|
||||||
|
in
|
||||||
|
{
|
||||||
|
# This section defines a package to run Caddy and serve your website
|
||||||
|
packages.default = pkgs.stdenv.mkDerivation rec {
|
||||||
|
name = "static-website";
|
||||||
|
src = ./src;
|
||||||
|
buildPhase = ''
|
||||||
|
mkdir -p $out/var/www
|
||||||
|
cp -r ${src}/* $out/var/www/
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
);
|
||||||
|
}
|
||||||
BIN
src/assets/flake.png
Normal file
BIN
src/assets/flake.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 119 KiB |
6
src/css/bootstrap.min.css
vendored
Normal file
6
src/css/bootstrap.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
92
src/css/overwrites.css
Normal file
92
src/css/overwrites.css
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
.container {
|
||||||
|
margin-top: 80px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.social-button {
|
||||||
|
width: 250px;
|
||||||
|
margin-bottom: 15px;
|
||||||
|
border-radius: 25px;
|
||||||
|
transition: all 0.3s ease-in-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
.social-button i {
|
||||||
|
margin-right: 8px; /* Adds space between icon and text */
|
||||||
|
}
|
||||||
|
|
||||||
|
.social-button:hover {
|
||||||
|
transform: scale(1.05);
|
||||||
|
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
|
||||||
|
}
|
||||||
|
|
||||||
|
.card {
|
||||||
|
border-radius: 15px;
|
||||||
|
padding: 30px;
|
||||||
|
background-color: #1e1e1e; /* Dark card background */
|
||||||
|
box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-title {
|
||||||
|
font-size: 2rem;
|
||||||
|
font-weight: bold;
|
||||||
|
color: #e0e0e0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.lead {
|
||||||
|
color: #b0b0b0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer {
|
||||||
|
color: #e0e0e0;
|
||||||
|
padding: 20px 0;
|
||||||
|
text-align: center;
|
||||||
|
margin-top: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer a {
|
||||||
|
color: #e0e0e0;
|
||||||
|
text-decoration: none;
|
||||||
|
transition: color 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer a:hover {
|
||||||
|
color: #3498db; /* Light blue hover effect */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Improved button styles */
|
||||||
|
.btn-custom {
|
||||||
|
background-color: #3498db;
|
||||||
|
border-color: #3498db;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-custom:hover {
|
||||||
|
background-color: #2980b9;
|
||||||
|
border-color: #2980b9;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-outline-custom {
|
||||||
|
color: #3498db;
|
||||||
|
border-color: #3498db;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-outline-custom:hover {
|
||||||
|
background-color: #3498db;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Input and Textarea style improvements */
|
||||||
|
.form-control {
|
||||||
|
background-color: #2c2c2c;
|
||||||
|
border: 1px solid #444;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-control:focus {
|
||||||
|
background-color: #333;
|
||||||
|
border-color: #3498db;
|
||||||
|
box-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.form-label {
|
||||||
|
color: #e0e0e0;
|
||||||
|
}
|
||||||
151
src/index.html
Normal file
151
src/index.html
Normal file
@@ -0,0 +1,151 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="en" data-bs-theme="dark">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<title>Xalir.net</title>
|
||||||
|
|
||||||
|
<!-- Bootstrap CSS -->
|
||||||
|
<link rel="stylesheet" href="css/bootstrap.min.css" />
|
||||||
|
<link rel="stylesheet" href="css/overwrites.css" />
|
||||||
|
|
||||||
|
<!-- Font Awesome Icons (for social buttons) -->
|
||||||
|
<link
|
||||||
|
rel="stylesheet"
|
||||||
|
href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css"
|
||||||
|
/>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- Main Container -->
|
||||||
|
<div class="container text-center">
|
||||||
|
<div class="row justify-content-center">
|
||||||
|
<div class="col-md-6">
|
||||||
|
<!-- Card for Centered Content -->
|
||||||
|
<div class="card">
|
||||||
|
<h1 class="card-title">Xalir</h1>
|
||||||
|
<p class="lead">
|
||||||
|
NixOS enjoyer
|
||||||
|
<img
|
||||||
|
src="assets/flake.png"
|
||||||
|
alt="Flake"
|
||||||
|
style="width: 24px; height: 24px; vertical-align: middle"
|
||||||
|
/>
|
||||||
|
</p>
|
||||||
|
<!-- Centered Social Links with Icons -->
|
||||||
|
<div class="d-flex flex-column align-items-center">
|
||||||
|
<a href="" class="btn btn-custom social-button mb-3"
|
||||||
|
><i class="fab fa-mastodon"></i>Mastodon</a
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
href="mailto:contact@xalir.net"
|
||||||
|
class="btn btn-outline-custom social-button mb-3"
|
||||||
|
><i class="fas fa-envelope"></i>Email</a
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
href="https://git.xalir.net/xalir"
|
||||||
|
class="btn btn-outline-custom social-button mb-3"
|
||||||
|
><i class="fab fa-github"></i>Git</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- About Me Section -->
|
||||||
|
<div class="row justify-content-center">
|
||||||
|
<div class="col-md-8">
|
||||||
|
<div class="card mt-5">
|
||||||
|
<h2 class="section-title">About Me</h2>
|
||||||
|
<p>
|
||||||
|
Hi, I'm Xalir. I'm passionate about software development,
|
||||||
|
open-source contributions, and sharing knowledge with the
|
||||||
|
community. I love learning new things and building cool projects.
|
||||||
|
I want to get into embedded stuff and start fun little
|
||||||
|
microcontroller projects.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Lost+Found Section -->
|
||||||
|
<div class="row justify-content-center">
|
||||||
|
<div class="col-md-8">
|
||||||
|
<div class="card mt-5">
|
||||||
|
<h2 class="section-title">Lost+Found</h2>
|
||||||
|
<p class="lead">
|
||||||
|
Found something that belongs to me? Please send me a message!
|
||||||
|
</p>
|
||||||
|
<form id="lostFoundForm">
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="item" class="form-label">Item Found</label>
|
||||||
|
<input
|
||||||
|
type="text"
|
||||||
|
class="form-control"
|
||||||
|
id="item"
|
||||||
|
name="item"
|
||||||
|
placeholder="What did you find?"
|
||||||
|
required
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="message" class="form-label">Your Message</label>
|
||||||
|
<textarea
|
||||||
|
class="form-control"
|
||||||
|
id="message"
|
||||||
|
name="message"
|
||||||
|
rows="4"
|
||||||
|
placeholder="Additional details..."
|
||||||
|
required
|
||||||
|
></textarea>
|
||||||
|
</div>
|
||||||
|
<button type="submit" class="btn btn-custom mt-3">
|
||||||
|
Send Message
|
||||||
|
</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
// Handle form submission
|
||||||
|
document
|
||||||
|
.getElementById("lostFoundForm")
|
||||||
|
.addEventListener("submit", function (event) {
|
||||||
|
event.preventDefault();
|
||||||
|
|
||||||
|
var itemName = document.getElementById("item").value.trim();
|
||||||
|
var messageContent = document
|
||||||
|
.getElementById("message")
|
||||||
|
.value.trim();
|
||||||
|
|
||||||
|
if (itemName && messageContent) {
|
||||||
|
var subject = "Item found: " + itemName;
|
||||||
|
var body = messageContent;
|
||||||
|
|
||||||
|
var mailtoLink =
|
||||||
|
"mailto:gefunden@xalir.net?subject=" +
|
||||||
|
encodeURIComponent(subject) +
|
||||||
|
"&body=" +
|
||||||
|
encodeURIComponent(body);
|
||||||
|
|
||||||
|
window.location.href = mailtoLink;
|
||||||
|
} else {
|
||||||
|
alert("Please fill out both fields.");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Footer Section -->
|
||||||
|
<div class="footer">
|
||||||
|
<p>
|
||||||
|
© 2025 Xalir.net. All rights reserved. |
|
||||||
|
<a href="https://git.xalir.net/xalir" target="_blank">Git</a> |
|
||||||
|
<a href="mailto:contact@xalir.net">Email</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Local Bootstrap JS -->
|
||||||
|
<script src="js/bootstrap.bundle.min.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
7
src/js/bootstrap.bundle.min.js
vendored
Normal file
7
src/js/bootstrap.bundle.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user