Merge remote-tracking branch 'origin/main'

This commit is contained in:
2026-05-29 21:27:36 -07:00
6 changed files with 166 additions and 8 deletions
Binary file not shown.
+92
View File
@@ -0,0 +1,92 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>HomeLab Presentation - 2026-05-01</title>
<style>
body {
font-family:
-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
"Helvetica Neue", Arial, sans-serif;
line-height: 1.6;
color: #333;
max-width: 1000px;
margin: 0 auto;
padding: 2rem;
background-color: #f4f7f9;
display: flex;
flex-direction: column;
align-items: center;
}
header {
text-align: center;
margin-bottom: 2rem;
}
h1 {
color: #2c3e50;
margin-bottom: 0.5rem;
}
.date {
color: #7f8c8d;
font-style: italic;
}
.pdf-container {
width: 100%;
height: 80vh;
border: 1px solid #ccc;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
border-radius: 8px;
overflow: hidden;
}
.controls {
margin-top: 1rem;
display: flex;
gap: 1rem;
}
.btn {
display: inline-block;
padding: 0.5rem 1rem;
background-color: #3498db;
color: white;
text-decoration: none;
border-radius: 4px;
transition: background-color 0.2s;
}
.btn:hover {
background-color: #2980b9;
}
</style>
</head>
<body>
<header>
<h1>HomeLab Presentation</h1>
<p class="date">May 1, 2026</p>
</header>
<div class="pdf-container">
<iframe
src="FLUG_Presentation_Slides.pdf"
width="100%"
height="100%"
style="border: none"
>
<p>
Your browser does not support iframes. Please
<a href="FLUG_Presentation_Slides.pdf"
>click here to view the presentation.</a
>
</p>
</iframe>
</div>
<div class="controls">
<a href="FLUG_Presentation_Slides.pdf" target="_blank" class="btn"
>Open PDF in New Tab</a
>
<a href="FLUG_Presentation_Slides.pdf" download class="btn"
>Download PDF</a
>
</div>
</body>
</html>
+27
View File
@@ -0,0 +1,27 @@
FROM node:22-alpine AS builder
# Set working directory
WORKDIR /app
# Copy the book source files
COPY . /app/flug
# Set the working directory to the book folder
WORKDIR /app/flug
# Install honkit globally and build the book
RUN npm install -g vite && \
npm install && \
vite build
# Final Stage: Serve with Nginx
FROM nginx:alpine
# Copy the rendered HTML from the builder stage
COPY --from=builder /app/flug/dist /usr/share/nginx/html
# Expose port 80
EXPOSE 80
# Use the default Nginx configuration to serve static files
CMD ["nginx", "-g", "daemon off;"]
+11 -7
View File
@@ -2,18 +2,22 @@
This repository contains the FLUG presentations.
## Usage
Install the required dependencies:
## Serving localls
Run once to install Vite globally:
```bash
nvm use stable
npm install
npm install -g vite
npm install
```
Run the development server:
```bash
vite
vite serve
```
## Building docker image
To build the Docker image, run:
```bash
docker buildx build --platform linux/arm64 --push -t docker.tipsy.codes/flug:20260519 .
```
+5 -1
View File
@@ -1,4 +1,4 @@
<!doctype html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
@@ -63,6 +63,10 @@
<a href="/20260403-HelloLinux/index.html">Hello Linux</a>
<div class="date">April 3, 2026</div>
</li>
<li>
<a href="/20260501-HomeLab/index.html">Home Lab</a>
<div class="date">May 1, 2026</div>
</li>
</ul>
</body>
</html>
+31
View File
@@ -27,6 +27,37 @@ function getInputs() {
}
export default defineConfig({
plugins: [
{
name: "copy-pdfs",
writeBundle() {
const entries = fs.readdirSync(__dirname, { withFileTypes: true });
for (const entry of entries) {
if (
entry.isDirectory() &&
entry.name !== "node_modules" &&
entry.name !== "dist" &&
!entry.name.startsWith(".")
) {
const dirPath = resolve(__dirname, entry.name);
const files = fs.readdirSync(dirPath);
for (const file of files) {
if (file.toLowerCase().endsWith(".pdf")) {
const src = resolve(dirPath, file);
const destDir = resolve(__dirname, "dist", entry.name);
const dest = resolve(destDir, file);
if (!fs.existsSync(destDir)) {
fs.mkdirSync(destDir, { recursive: true });
}
fs.copyFileSync(src, dest);
}
}
}
}
},
},
],
build: {
rollupOptions: {
input: getInputs(),