Update something

This commit is contained in:
tiff 2024-08-08 19:03:01 -04:00
parent 02ebf2a878
commit 776f90c240
61 changed files with 304 additions and 521 deletions

View file

@ -0,0 +1 @@
# Homepage

View file

@ -0,0 +1,92 @@
---
- Repositories:
- Homelab:
- icon: si-github-#FFFFFF
href: https://github.com/twhite96/homelab-config
description: Homelab config
- Homelab Docs:
- icon: si-github-#FFFFFF
href: https://github.com/twhite96/tifflabs
description: Homelab repo
- Selfhosted Projects:
- tiff labs:
- icon: /icons/tifflabsgit.png
href: https://tifflabs-software.org
description: Labs software hosting
- cyber:
- icon: /icons/htbavatar.png
href: https://projects.0x8c.run
description: '0x8c project hosting'
- Cloud Platforms:
- Linode:
- icon: /icons/linode.png
href: https://cloud.linode.com/linodes
description: Linode
- Hetzner:
- icon: si-hetzner-#D50C2D
href: https://accounts.hetzner.com/login
description: Hetzner
- Hosting Platforms:
- Vercel:
- icon: si-vercel-#000000
href: https://vercel.com/dashboard
description: Vercel
- Cloudron:
- icon: si-cloudron-#03A9F4
href: https://console.cloudron.io/
description: Cloudron
- Documentation:
- Docs site:
- icon: si-materialformkdocs-#ff0000
href: https://docs.tifflabs.org
description: Smart home docs
- labs.network:
- icon: si-bookstack-#B91C1C
href: https://presto-horn.tifflabs.org
description: Network wiki
- Public Projects:
- Homelab Config:
- icon: /icons/tifflabs.svg
href: https://homelab.tiff.tools
description: Homelab Config
- Forgejo Homelab Projects:
- icon: si-forgejo-#FB923C
href: https://tifflabs-software.org/explore
description: Public personal projects
- Cyber Learning:
- Hack The Box:
- icon: si-hackthebox-#9FEF00
href: https://academy.hackthebox.com
description: HTB Academy
- TryHackMe:
- icon: si-tryhackme-#88CC15
href: https://tryhackme.com/
description: TryHackMe
- Productivity:
- Email:
- icon: si-protonmail-#6D4AFF
href: https://mail.proton.me/
description: Email
- Calendar:
- icon: si-protoncalendar-#50B0E9
href: https://calendar.proton.me
description: Calendar
- Public Notes and Writeups:
- Notes:
- icon: si-obsidian-#7C3AED
href: https://notes.0x8c.org
description: Public Notes
- Wiki:
icon: si-gitbook-#BBDDE5
href: https://app.gitbook.com/?source=pwa
description: Write-ups

View file

View file

View file

@ -0,0 +1,107 @@
---
- Infrastructure and Data:
- Proxmox:
href: {{proxmox-url}}
icon: proxmox.svg
description: prx-prod-2
siteMonitor: {{proxmox-url}}
widget:
type: proxmox
url: {{proxmox-url}}
username: {{HOMEPAGE_VAR_PROXMOX_USERNAME}}
password: {{HOMEPAGE_VAR_PROXMOX_PASSWORD}}
- Authentik:
icon: authentik.png
showStats: true
href: {{url}}
widget:
type: authentik
fields: ["users"]
url: {{url}}
key: {{HOMEPAGE_VAR_AUTHENTIK_KEY}}
- Monitoring:
- UptimeKuma:
icon: uptime-kuma.svg
href: https://uptime.tifflabs.org
widget:
description: uptime on pve main
fields: ["up", "down", "uptime", "incident"]
icon: uptime-kuma.svg
type: uptimekuma
url: {{url}}
slug: lab
- Pi-hole:
icon: pi-hole.svg
siteMonitor: {{url}}
widget:
type: pihole
fields: ["queries", "blocked", "blocked_percent", "gravity"]
url: {{url}} # required if running v6 or higher, defaults to 5
key: {{HOMEPAGE_VAR_PIHOLE_TOKEN}}
- Grafana:
icon: grafana.svg
siteMonitor: {{url}}
widget:
type: grafana
fields: ["dashboards", "datasources", "totalalerts", "alertstriggered"]
url: {{url}}
username: tifflabs
password: {{HOMEPAGE_VAR_GRAFANA_PASSWORD}}
- Tailscale:
icon: tailscale.svg
showStats: true
widget:
type: tailscale
fields: ["address", "last_seen", "expires"]
deviceid: {{device-id}}
key: {{key}}
- Media:
- Jellyfin:
icon: jellyfin.svg
description: tailnet jellyfin
widget:
type: jellyfin
url: {{url}}
fields: ["movies", "series", "episodes", "songs"]
key: {{HOMEPAGE_VAR_JELLYFIN_KEY}}
enableBlocks: true # optional, defaults to false
enableNowPlaying: true # optional, defaults to true
enableUser: true # optional, defaults to false
showEpisodeNumber: true # optional, defaults to false
expandOneStreamToTwoRows: false # optional, defaults to true
- Calibre:
icon: calibre.svg
siteMonitor: https://books.tiffs.app
href: 'https://books.tiffs.app'
widget:
type: calibreweb
url: https://books.tiffs.app
fields: ["books", "authors", "categories", "series"]
username: {{username}}
password: {{password}}
- FreshRSS:
icon: freshrss.svg
description: RSS Feed
href: https://rss.tifflabs.dev
showStats: true
widget:
type: freshrss
url: https://rss.tifflabs.dev
fields: ["subscriptions", "unread"]
username: {{username}}
password: {{password}}
- Audiobookshelf:
icon: audiobookshelf.svg
siteMonitor: https://audiobooks.tiffs.app
href: https://audiobooks.tiffs.app
description: Audiobook Library
showStats: true
widget:
type: audiobookshelf
fields: ["podcasts", "podcastsDuration", "books", "booksDuration"]
url: https://audiobooks.tiffs.app
key: {{HOMEPAGE_VAR_AUDIOBOOKSHELF_KEY}}

View file

@ -0,0 +1,74 @@
---
title: Dash
headerStyle: clean
background:
blur: xl
brightness: 90
opacity: 60
cardBlur: sm
useEqualHeights: true
providers:
quicklaunch:
searchDescriptions: true
hideInternetSearch: true
showSearchSuggestions: true
hideVisitURL: true
layout:
- Services:
Infrastructure and Data:
icon: proxmox.svg
style: row
columns: 2
Monitoring:
icon: grafana.svg
style: row
columns: 4
Media:
icon: jellyfin.svg
style: row
columns: 4
- Bookmarks:
Repositories:
icon: github.svg
style: row
columns: 2
Selfhosted Projects:
icon: codeberg.svg
style: row
columns: 2
Cloud Platforms:
icon: hetzner.svg
style: row
columns: 2
Hosting Platforms:
icon: cloudron.svg
style: row
columns: 2
Documentation:
icon: bookstack.svg
style: row
columns: 2
Public Projects:
icon: forgejo.svg
style: row
columns: 2
Cyber Learning:
icon: hackthebox.svg
style: row
columns: 2
Productivity:
icon: protonmail.svg
style: row
columns: 2
Public Notes and Writeups:
icon: obsidian.svg
style: row
columns: 2

View file

@ -0,0 +1,26 @@
---
- resources:
cpu: true
memory: true
disk: /
- search:
provider: custom
url: # whoogle # google, duckduckgo, bing, baidu, brave or custom
focus: true
target: _blank # One of _self, _blank, _parent or _top
- openweathermap:
latitude: {{long}}
longitude: {{lat}}
units: imperial # or imperial
provider: openweathermap
cache: 5 # Time in minutes to cache API responses, to stay within limits
format: # optional, Intl.NumberFormat options
maximumFractionDigits: 0
- datetime:
text_size: m
format:
timeStyle: short
hourCycle: h12

View file

@ -0,0 +1,14 @@
---
services:
homepage:
image: ghcr.io/gethomepage/homepage:latest
container_name: homepage-prod-1
ports:
- 3000:3000
env_file:
- ".env.example"
volumes:
- ./config:/app/config # Make sure your local config directory exists
- ./images:/app/public/images
- ./icons:/app/public/icons
restart: unless-stopped

View file

@ -0,0 +1,76 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2024 tteck
# Author: tteck (tteckster)
# License: MIT
# https://github.com/tteck/Proxmox/raw/main/LICENSE
source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt-get install -y curl
$STD apt-get install -y sudo
$STD apt-get install -y mc
$STD apt-get install -y make
$STD apt-get install -y g++
$STD apt-get install -y gcc
$STD apt-get install -y ca-certificates
$STD apt-get install -y gnupg
msg_ok "Installed Dependencies"
msg_info "Setting up Node.js Repository"
mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_20.x nodistro main" >/etc/apt/sources.list.d/nodesource.list
msg_ok "Set up Node.js Repository"
msg_info "Installing Node.js"
$STD apt-get update
$STD apt-get install -y nodejs
$STD npm install -g pnpm
msg_ok "Installed Node.js"
RELEASE=$(curl -s https://api.github.com/repos/gethomepage/homepage/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
msg_info "Installing Homepage v${RELEASE} (Patience)"
wget -q https://github.com/gethomepage/homepage/archive/refs/tags/v${RELEASE}.tar.gz
$STD tar -xzf v${RELEASE}.tar.gz
mkdir -p /opt/homepage/config
mv homepage-${RELEASE}/* /opt/homepage
rm -rf homepage-${RELEASE}
cd /opt/homepage
cp /opt/homepage/src/skeleton/* /opt/homepage/config
$STD pnpm install
$STD pnpm build
msg_ok "Installed Homepage v${RELEASE}"
msg_info "Creating Service"
service_path="/etc/systemd/system/homepage.service"
echo "[Unit]
Description=Homepage
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=1
User=root
WorkingDirectory=/opt/homepage/
ExecStart=pnpm start
[Install]
WantedBy=multi-user.target" >$service_path
$STD systemctl enable --now homepage
msg_ok "Created Service"
motd_ssh
customize
msg_info "Cleaning up"
$STD apt-get autoremove
$STD apt-get autoclean
msg_ok "Cleaned"