First Commit

This commit is contained in:
2021-05-18 00:58:01 +01:00
parent 75945a93a7
commit a2bd078f6e
96 changed files with 3311 additions and 0 deletions

46
.github/workflows/release.yml vendored Normal file
View File

@@ -0,0 +1,46 @@
name: Build Blog
on:
push:
branches:
- main # Set a branch to deploy
env:
IMAGE_REPO: ghcr.io/hotarublaze
IMAGE_NAME: fluttershub-blog
jobs:
deploy:
runs-on: ubuntu-18.04
# If running with act, Uncomment below
container: phaze9/action-runner
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod
- name: Setup Hugo
uses: peaceiris/actions-hugo@v2
with:
hugo-version: '0.83.1'
extended: true
- name: Build
run: hugo --minify --destination build/
- name: Setup Docker
uses: docker/setup-buildx-action@v1
- name: Login to ghcr.io
uses: docker/login-action@v1
with:
registry: ghcr.io
username: HotaruBlaze
password: ${{ secrets.CR_PAT }}
- name: Build and push
id: docker_build
uses: docker/build-push-action@v2
with:
push: true
tags: ${{ env.IMAGE_REPO }}/${{ env.IMAGE_NAME }}:latest

26
docker/nginx.conf Normal file
View File

@@ -0,0 +1,26 @@
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
keepalive_timeout 65;
include /etc/nginx/conf.d/*.conf;
}

8
docker/web.conf Normal file
View File

@@ -0,0 +1,8 @@
server {
listen 80;
location / {
root /usr/share/nginx/html;
index index.html;
}
}

View File

@@ -0,0 +1,6 @@
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
draft: true
---

3
src/build.sh Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/bash
rm -Rf public/ build/
hugo --destination build/

71
src/build/404.html Normal file
View File

@@ -0,0 +1,71 @@
<!doctype html>
<html lang="en-us">
<head>
<title>404 Page not found // Phoenix&#39;s Personal Blog</title>
<link rel="shortcut icon" href="/favicon.ico" />
<meta charset="utf-8" />
<meta name="generator" content="Hugo 0.83.0" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="author" content="Phoenix" />
<meta name="description" content="" />
<link rel="stylesheet" href="https://blog.fluttershub.com/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="404 Page not found"/>
<meta name="twitter:description" content="Land of random projects i do."/>
<meta property="og:title" content="404 Page not found" />
<meta property="og:description" content="Land of random projects i do." />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://blog.fluttershub.com/404.html" />
</head>
<body>
<header class="app-header">
<a class="gradient-border" href="https://blog.fluttershub.com/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
<h2>Phoenix&#39;s Personal Blog</h2>
<nav class="app-header-menu">
<a class="app-header-menu-item" href="/">Home</a>
|
<a class="app-header-menu-item" href="/tags/">Tags</a>
</nav>
<p>Land of random projects i do.</p>
<div class="app-header-social">
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-github">
<title>Github</title>
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
</svg>
</a>
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-twitter">
<title>Twitter</title>
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
</svg>
</a>
</div>
</header>
<main class="app-container">
<div class="error-404">
<h1 class="error-404-title">O<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-frown">
<title>frown</title>
<circle cx="12" cy="12" r="10"></circle><path d="M16 16s-1.5-2-4-2-4 2-4 2"></path><line x1="9" y1="9" x2="9.01" y2="9"></line><line x1="15" y1="9" x2="15.01" y2="9"></line>
</svg>ps... </h1>
<p>The link you followed may be broken, or the page may have been removed.</p>
<a href="/">Go home <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-arrow-right">
<title>arrow-right</title>
<line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline>
</svg></a>
</div>
</main>
</body>
</html>

BIN
src/build/avatar.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

View File

@@ -0,0 +1,68 @@
<!doctype html>
<html lang="en-us">
<head>
<title>Categories // Phoenix&#39;s Personal Blog</title>
<link rel="shortcut icon" href="/favicon.ico" />
<meta charset="utf-8" />
<meta name="generator" content="Hugo 0.83.0" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="author" content="Phoenix" />
<meta name="description" content="" />
<link rel="stylesheet" href="https://blog.fluttershub.com/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Categories"/>
<meta name="twitter:description" content="Land of random projects i do."/>
<meta property="og:title" content="Categories" />
<meta property="og:description" content="Land of random projects i do." />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://blog.fluttershub.com/categories/" />
</head>
<body>
<header class="app-header">
<a class="gradient-border" href="https://blog.fluttershub.com/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
<h2>Phoenix&#39;s Personal Blog</h2>
<nav class="app-header-menu">
<a class="app-header-menu-item" href="/">Home</a>
|
<a class="app-header-menu-item" href="/tags/">Tags</a>
</nav>
<p>Land of random projects i do.</p>
<div class="app-header-social">
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-github">
<title>Github</title>
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
</svg>
</a>
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-twitter">
<title>Twitter</title>
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
</svg>
</a>
</div>
</header>
<main class="app-container">
<article>
<h1>Categories</h1>
<ul class="tags-list">
</ul>
</article>
</main>
</body>
</html>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Categories on Phoenix&#39;s Personal Blog</title>
<link>https://blog.fluttershub.com/categories/</link>
<description>Recent content in Categories on Phoenix&#39;s Personal Blog</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language><atom:link href="https://blog.fluttershub.com/categories/index.xml" rel="self" type="application/rss+xml" />
</channel>
</rss>

View File

@@ -0,0 +1 @@
*{box-sizing:border-box}html{line-height:1.6}body{margin:0;font-family:sans-serif;background:#353b43;color:#afbac4}h1,h2,h3,h4,h5,h6{color:#fff}a{color:#57cc8a;transition:color .35s;text-decoration:none}a:hover{color:#fff}code{font-family:monospace,monospace;font-size:1em;color:rgba(175,186,196,.8)}pre{font-size:1rem;line-height:1.2em;margin:0;overflow:auto}pre code{font-size:.8em}::selection{background:rgba(175,186,196,.25)}::-moz-selection{background:rgba(175,186,196,.25)}.app-header{padding:2.5em;background:#242930;text-align:center}.app-header-avatar{width:15rem;height:15rem}.app-container{padding:2.5rem}.app-header-social{font-size:2em;color:#fff}.app-header-social a{margin:0 .1em}@media(min-width:940px){.app-header{position:fixed;top:0;left:0;width:20rem;min-height:100vh}.app-container{max-width:65rem;margin-left:20rem}}@media(max-width:940px){h2{font-size:large}.app-container{padding:.5rem}}.error-404{text-align:center}.error-404-title{text-transform:uppercase}.icon{display:inline-block;width:1em;height:1em;vertical-align:-.125em}.pagination{display:block;list-style:none;padding:0;font-size:.8em;text-align:center;margin:3em 0}.page-item{display:inline-block}.page-item .page-link{display:block;padding:.285em .8em}.page-item.active .page-link{color:#fff;border-radius:2em;background:#57cc8a}.post-title{color:#fff}.post-content>pre,.post-content .highlight{margin:1em 0}.post-content>pre,.post-content .highlight>pre,.post-content .highlight>div{border-left:.4em solid rgba(87,204,138,.8);padding:.5em 1em}.post-content img{max-width:100%}.post-meta{font-size:.8em}.posts-list{padding:0}.posts-list-item{list-style:none;padding:.4em 0}.posts-list-item:not(:last-child){border-bottom:1px dashed rgba(255,255,255,.3)}.posts-list-item-description{display:block;font-size:.8em}.tag{display:inline-block;margin-right:.2em;padding:0 .6em;font-size:.9em;border-radius:.2em;white-space:nowrap;background:rgba(255,255,255,.1);transition:color .35s,background .35s}.tag:hover{transition:color .25s,background .05s;background:rgba(255,255,255,.3)}.tags-list{padding:0}.tags-list-item{list-style:none;padding:.4em 0}.tags-list-item:not(:last-child){border-bottom:1px dashed rgba(255,255,255,.3)}@media(min-width:450px){.tags-list{display:flex;flex-wrap:wrap}.tags-list-item{width:calc(50% - 1em)}.tags-list-item:nth-child(even){margin-left:1em}.tags-list-item:nth-last-child(2){border:none}}.gradient-border{margin:auto;--border-width:0.35rem;border-radius:.35rem;position:relative;display:flex;justify-content:center;align-items:center;font-family:Lato,sans-serif;font-size:2.5rem;text-transform:uppercase;color:#fff;background:#222;border-radius:var(--border-width)}.gradient-border::after{position:absolute;content:"";top:calc(-1 * var(--border-width));left:calc(-1 * var(--border-width));z-index:-1;width:calc(100% + var(--border-width) * 2);height:calc(100% + var(--border-width) * 2);background:linear-gradient(60deg,#5f86f2,#a65ff2,#f25fd0,#f25f61,#f2cb5f,#abf25f,#5ff281,#5ff2f0);background-size:300% 300%;background-position:0;border-radius:calc(2 * var(--border-width));animation:moveGradient 4s alternate infinite}@keyframes moveGradient{50%{background-position:100%}}.gradient-border img{margin:auto;width:100%;border-radius:1.5%}

90
src/build/index.html Normal file
View File

@@ -0,0 +1,90 @@
<!doctype html>
<html lang="en-us">
<head>
<title>Phoenix&#39;s Personal Blog</title>
<link rel="shortcut icon" href="/favicon.ico" />
<meta charset="utf-8" />
<meta name="generator" content="Hugo 0.83.0" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="author" content="Phoenix" />
<meta name="description" content="Land of random projects i do." />
<link rel="stylesheet" href="https://blog.fluttershub.com/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Phoenix&#39;s Personal Blog"/>
<meta name="twitter:description" content="Land of random projects i do."/>
<meta property="og:title" content="Phoenix&#39;s Personal Blog" />
<meta property="og:description" content="Land of random projects i do." />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://blog.fluttershub.com/" />
</head>
<body>
<header class="app-header">
<a class="gradient-border" href="https://blog.fluttershub.com/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
<h2>Phoenix&#39;s Personal Blog</h2>
<nav class="app-header-menu">
<a class="app-header-menu-item" href="/">Home</a>
|
<a class="app-header-menu-item" href="/tags/">Tags</a>
</nav>
<p>Land of random projects i do.</p>
<div class="app-header-social">
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-github">
<title>Github</title>
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
</svg>
</a>
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-twitter">
<title>Twitter</title>
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
</svg>
</a>
</div>
</header>
<main class="app-container">
<article>
<h1>Phoenix&#39;s Personal Blog</h1>
<ul class="posts-list">
<li class="posts-list-item">
<a class="posts-list-item-title" href="https://blog.fluttershub.com/posts/windows10-kvm/">Windows 10 KVM Single-GPU Passthrough</a>
<span class="posts-list-item-description">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-calendar">
<title>calendar</title>
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line>
</svg>
May 18, 2020
</span>
</li>
</li>
</li>
</ul>
</article>
</main>
</body>
</html>

38
src/build/index.xml Normal file
View File

@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Phoenix&#39;s Personal Blog</title>
<link>https://blog.fluttershub.com/</link>
<description>Recent content on Phoenix&#39;s Personal Blog</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language>
<lastBuildDate>Mon, 18 May 2020 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.fluttershub.com/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Windows 10 KVM Single-GPU Passthrough</title>
<link>https://blog.fluttershub.com/posts/windows10-kvm/</link>
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
<guid>https://blog.fluttershub.com/posts/windows10-kvm/</guid>
<description>Note: This is here as notes and shouldn&amp;rsquo;t be taken as a direct guide. Table of Contents Host Specs Final VM Configuration Extra Kernal Arguements Nvidia GPU VFIO patch (This is required on 10XX Series) VM Networking CPU Settings Sata Passthrough Virt-Manager Hardware Overview Host Specs CPU: AMD Ryzen 5 3600 GPU: NVIDIA GeForce GTX 1060 6GB Motherboard: MSI B450 Tomahawk Max OS: Garuda Linux: Spotted-Eagle Kernel: 5.</description>
</item>
<item>
<title>Windows 10 KVM Single-GPU Passthrough - macvlan Script</title>
<link>https://blog.fluttershub.com/posts/windows10-kvm/macvlan/</link>
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
<guid>https://blog.fluttershub.com/posts/windows10-kvm/macvlan/</guid>
<description>#!/bin/sh # Last Edited: 2020-05-18 # From: https://www.furorteutonicus.eu/2013/08/04/enabling-host-guest-networking-with-kvm-macvlan-and-macvtap/ # Let host and guests talk to each other over macvlan. # Configures a macvlan interface on the hypervisor. # Run this on the hypervisor (e.g. in /etc/rc.local) # Made for IPv4; need modification for IPv6. # Meant for a simple network setup with only eth0, # and a static (manual) ip config. # Evert Mouw, 2013. Slightly modified in 2020. HWLINK=enp34s0 MACVLN=macvlan0 TESTHOST=www.</description>
</item>
<item>
<title>Windows 10 KVM Single-GPU Passthrough - macvlan Service</title>
<link>https://blog.fluttershub.com/posts/windows10-kvm/macvlan-service/</link>
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
<guid>https://blog.fluttershub.com/posts/windows10-kvm/macvlan-service/</guid>
<description># /etc/systemd/system/macvlan.service [Unit] Description=MACVLAN bridge to share a physical network interface with KVM/QEMU hosts. Documentation=https://www.furorteutonicus.eu/2013/08/04/enabling-host-guest-networking-with-kvm-macvlan-and-macvtap/ After=network-online.target Wants=network-online.target Before=libvirt-guests.service [Service] Type=oneshot RemainAfterExit=yes ExecStart=/home/phoenix/macvlan/macvlan.sh [Install] WantedBy=multi-user.target </description>
</item>
</channel>
</rss>

View File

@@ -0,0 +1 @@
<!DOCTYPE html><html><head><title>https://blog.fluttershub.com/</title><link rel="canonical" href="https://blog.fluttershub.com/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=https://blog.fluttershub.com/" /></head></html>

View File

@@ -0,0 +1,90 @@
<!doctype html>
<html lang="en-us">
<head>
<title>Posts // Phoenix&#39;s Personal Blog</title>
<link rel="shortcut icon" href="/favicon.ico" />
<meta charset="utf-8" />
<meta name="generator" content="Hugo 0.83.0" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="author" content="Phoenix" />
<meta name="description" content="" />
<link rel="stylesheet" href="https://blog.fluttershub.com/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Posts"/>
<meta name="twitter:description" content="Land of random projects i do."/>
<meta property="og:title" content="Posts" />
<meta property="og:description" content="Land of random projects i do." />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://blog.fluttershub.com/posts/" />
</head>
<body>
<header class="app-header">
<a class="gradient-border" href="https://blog.fluttershub.com/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
<h2>Phoenix&#39;s Personal Blog</h2>
<nav class="app-header-menu">
<a class="app-header-menu-item" href="/">Home</a>
|
<a class="app-header-menu-item" href="/tags/">Tags</a>
</nav>
<p>Land of random projects i do.</p>
<div class="app-header-social">
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-github">
<title>Github</title>
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
</svg>
</a>
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-twitter">
<title>Twitter</title>
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
</svg>
</a>
</div>
</header>
<main class="app-container">
<article>
<h1>Posts</h1>
<ul class="posts-list">
<li class="posts-list-item">
<a class="posts-list-item-title" href="https://blog.fluttershub.com/posts/windows10-kvm/">Windows 10 KVM Single-GPU Passthrough</a>
<span class="posts-list-item-description">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-calendar">
<title>calendar</title>
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line>
</svg>
May 18, 2020
</span>
</li>
</li>
</li>
</ul>
</article>
</main>
</body>
</html>

38
src/build/posts/index.xml Normal file
View File

@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Posts on Phoenix&#39;s Personal Blog</title>
<link>https://blog.fluttershub.com/posts/</link>
<description>Recent content in Posts on Phoenix&#39;s Personal Blog</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language>
<lastBuildDate>Mon, 18 May 2020 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.fluttershub.com/posts/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Windows 10 KVM Single-GPU Passthrough</title>
<link>https://blog.fluttershub.com/posts/windows10-kvm/</link>
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
<guid>https://blog.fluttershub.com/posts/windows10-kvm/</guid>
<description>Note: This is here as notes and shouldn&amp;rsquo;t be taken as a direct guide. Table of Contents Host Specs Final VM Configuration Extra Kernal Arguements Nvidia GPU VFIO patch (This is required on 10XX Series) VM Networking CPU Settings Sata Passthrough Virt-Manager Hardware Overview Host Specs CPU: AMD Ryzen 5 3600 GPU: NVIDIA GeForce GTX 1060 6GB Motherboard: MSI B450 Tomahawk Max OS: Garuda Linux: Spotted-Eagle Kernel: 5.</description>
</item>
<item>
<title>Windows 10 KVM Single-GPU Passthrough - macvlan Script</title>
<link>https://blog.fluttershub.com/posts/windows10-kvm/macvlan/</link>
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
<guid>https://blog.fluttershub.com/posts/windows10-kvm/macvlan/</guid>
<description>#!/bin/sh # Last Edited: 2020-05-18 # From: https://www.furorteutonicus.eu/2013/08/04/enabling-host-guest-networking-with-kvm-macvlan-and-macvtap/ # Let host and guests talk to each other over macvlan. # Configures a macvlan interface on the hypervisor. # Run this on the hypervisor (e.g. in /etc/rc.local) # Made for IPv4; need modification for IPv6. # Meant for a simple network setup with only eth0, # and a static (manual) ip config. # Evert Mouw, 2013. Slightly modified in 2020. HWLINK=enp34s0 MACVLN=macvlan0 TESTHOST=www.</description>
</item>
<item>
<title>Windows 10 KVM Single-GPU Passthrough - macvlan Service</title>
<link>https://blog.fluttershub.com/posts/windows10-kvm/macvlan-service/</link>
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
<guid>https://blog.fluttershub.com/posts/windows10-kvm/macvlan-service/</guid>
<description># /etc/systemd/system/macvlan.service [Unit] Description=MACVLAN bridge to share a physical network interface with KVM/QEMU hosts. Documentation=https://www.furorteutonicus.eu/2013/08/04/enabling-host-guest-networking-with-kvm-macvlan-and-macvtap/ After=network-online.target Wants=network-online.target Before=libvirt-guests.service [Service] Type=oneshot RemainAfterExit=yes ExecStart=/home/phoenix/macvlan/macvlan.sh [Install] WantedBy=multi-user.target </description>
</item>
</channel>
</rss>

View File

@@ -0,0 +1 @@
<!DOCTYPE html><html><head><title>https://blog.fluttershub.com/posts/</title><link rel="canonical" href="https://blog.fluttershub.com/posts/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=https://blog.fluttershub.com/posts/" /></head></html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

View File

@@ -0,0 +1,176 @@
<!doctype html>
<html lang="en-us">
<head>
<title>Windows 10 KVM Single-GPU Passthrough // Phoenix&#39;s Personal Blog</title>
<link rel="shortcut icon" href="/favicon.ico" />
<meta charset="utf-8" />
<meta name="generator" content="Hugo 0.83.0" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="author" content="Phoenix" />
<meta name="description" content="" />
<link rel="stylesheet" href="https://blog.fluttershub.com/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Windows 10 KVM Single-GPU Passthrough"/>
<meta name="twitter:description" content="Note: This is here as notes and shouldn&rsquo;t be taken as a direct guide. Table of Contents Host Specs Final VM Configuration Extra Kernal Arguements Nvidia GPU VFIO patch (This is required on 10XX Series) VM Networking CPU Settings Sata Passthrough Virt-Manager Hardware Overview Host Specs CPU: AMD Ryzen 5 3600 GPU: NVIDIA GeForce GTX 1060 6GB Motherboard: MSI B450 Tomahawk Max OS: Garuda Linux: Spotted-Eagle Kernel: 5."/>
<meta property="og:title" content="Windows 10 KVM Single-GPU Passthrough" />
<meta property="og:description" content="Note: This is here as notes and shouldn&rsquo;t be taken as a direct guide. Table of Contents Host Specs Final VM Configuration Extra Kernal Arguements Nvidia GPU VFIO patch (This is required on 10XX Series) VM Networking CPU Settings Sata Passthrough Virt-Manager Hardware Overview Host Specs CPU: AMD Ryzen 5 3600 GPU: NVIDIA GeForce GTX 1060 6GB Motherboard: MSI B450 Tomahawk Max OS: Garuda Linux: Spotted-Eagle Kernel: 5." />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://blog.fluttershub.com/posts/windows10-kvm/" /><meta property="article:section" content="posts" />
<meta property="article:published_time" content="2020-05-18T00:00:00&#43;00:00" />
<meta property="article:modified_time" content="2020-05-18T00:00:00&#43;00:00" />
</head>
<body>
<header class="app-header">
<a class="gradient-border" href="https://blog.fluttershub.com/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
<h2>Phoenix&#39;s Personal Blog</h2>
<nav class="app-header-menu">
<a class="app-header-menu-item" href="/">Home</a>
|
<a class="app-header-menu-item" href="/tags/">Tags</a>
</nav>
<p>Land of random projects i do.</p>
<div class="app-header-social">
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-github">
<title>Github</title>
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
</svg>
</a>
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-twitter">
<title>Twitter</title>
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
</svg>
</a>
</div>
</header>
<main class="app-container">
<article class="post">
<header class="post-header">
<h1 class ="post-title">Windows 10 KVM Single-GPU Passthrough</h1>
<div class="post-meta">
<div>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-calendar">
<title>calendar</title>
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line>
</svg>
May 18, 2020
</div>
<div>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tag">
<title>tag</title>
<path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path><line x1="7" y1="7" x2="7.01" y2="7"></line>
</svg>
<a class="tag" href="https://blog.fluttershub.com/tags/virtualization/">virtualization</a>
<a class="tag" href="https://blog.fluttershub.com/tags/kvm/">kvm</a>
<a class="tag" href="https://blog.fluttershub.com/tags/windows/">windows</a>
<a class="tag" href="https://blog.fluttershub.com/tags/linux/">linux</a>
</div>
</div>
</header>
<div class="post-content">
<h2 id="note-this-is-here-as-notes-and-shouldnt-be-taken-as-a-direct-guide">Note: This is here as notes and shouldn&rsquo;t be taken as a direct guide.</h2>
<h1 id="table-of-contents">Table of Contents</h1>
<div class="toc" class="well col-md-4 col-sm-6">
<nav id="TableOfContents">
<ul>
<li><a href="#host-specs">Host Specs</a></li>
<li><a href="#final-vm-configuration">Final VM Configuration</a></li>
<li><a href="#extra-kernal-arguements">Extra Kernal Arguements</a></li>
<li><a href="#nvidia-gpu-vfio-patch-this-is-required-on-10xx-series">Nvidia GPU VFIO patch (This is required on 10XX Series)</a></li>
<li><a href="#vm-networking">VM Networking</a></li>
<li><a href="#cpu-settings">CPU Settings</a></li>
<li><a href="#sata-passthrough">Sata Passthrough</a></li>
<li><a href="#virt-manager-hardware-overview">Virt-Manager Hardware Overview</a></li>
</ul>
</nav>
</div>
<hr>
<h3 id="host-specs">Host Specs</h3>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:1;-o-tab-size:1;tab-size:1"><code class="language-txt" data-lang="txt">CPU: AMD Ryzen 5 3600
GPU: NVIDIA GeForce GTX 1060 6GB
Motherboard: MSI B450 Tomahawk Max
OS: Garuda Linux: Spotted-Eagle
Kernel: 5.12.3-zen1-1-zen
Memory: 16GB </code></pre></div>
<h3 id="final-vm-configuration">Final VM Configuration</h3>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:1;-o-tab-size:1;tab-size:1"><code class="language-txt" data-lang="txt">CPU: 4 Cores, 8 Threads
GPU: NVIDIA GeForce GTX 1060 6GB
Memory: 10GB
Chipset: Q35
Firmware: OVMF
PCI Passthrough: Advanced Micro Devices, Inc. [AMD] 400 Series Chipset USB 3.1 XHCI Controller
PCI Passthrough: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller</code></pre></div>
<h3 id="extra-kernal-arguements">Extra Kernal Arguements</h3>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:1;-o-tab-size:1;tab-size:1"><code class="language-txt" data-lang="txt">video:vesafb=off video:efifb=off amd_iommu=on iommu=pt iommu=1 pcie_acs_override=downstream,multifunction</code></pre></div>
<h3 id="nvidia-gpu-vfio-patch-this-is-required-on-10xx-series">Nvidia GPU VFIO patch (This is required on 10XX Series)</h3>
<p>Original bios downloaded from: <a href="https://www.techpowerup.com/vgabios/">https://www.techpowerup.com/vgabios/</a><br>
<a href="https://github.com/Matoking/NVIDIA-vBIOS-VFIO-Patcher">NVIDIA vBIOS VFIO Patcher</a>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:1;-o-tab-size:1;tab-size:1"><code class="language-bash" data-lang="bash">git clone https://github.com/Matoking/NVIDIA-vBIOS-VFIO-Patcher
<span style="color:#8be9fd;font-style:italic">cd</span> NVIDIA-vBIOS-VFIO-Patcher
python nvidia_vbios_vfio_patcher.py -i /home/phoenix/download/gtx1060.rom -o ./gtx1060-patched.rom
cp ./gtx1060-patched.rom /usr/share/vgabios/gtx1060-patched.rom</code></pre></div></p>
<h4 id="make-sure-bar-is-toggled-pass-the-file-for-the-rom-and-the-second-address-contains-multifunctionon">Make sure Bar is toggled, Pass the file for the rom, and the second address contains multifunction=&lsquo;on&rsquo;</h4>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:1;-o-tab-size:1;tab-size:1"><code class="language-xml" data-lang="xml"><span style="color:#ff79c6">&lt;hostdev</span> <span style="color:#50fa7b">mode=</span><span style="color:#f1fa8c">&#39;subsystem&#39;</span> <span style="color:#50fa7b">type=</span><span style="color:#f1fa8c">&#39;pci&#39;</span> <span style="color:#50fa7b">managed=</span><span style="color:#f1fa8c">&#39;yes&#39;</span><span style="color:#ff79c6">&gt;</span>
<span style="color:#ff79c6">&lt;source&gt;</span>
<span style="color:#ff79c6">&lt;address</span> <span style="color:#50fa7b">domain=</span><span style="color:#f1fa8c">&#39;0x0000&#39;</span> <span style="color:#50fa7b">bus=</span><span style="color:#f1fa8c">&#39;0x26&#39;</span> <span style="color:#50fa7b">slot=</span><span style="color:#f1fa8c">&#39;0x00&#39;</span> <span style="color:#50fa7b">function=</span><span style="color:#f1fa8c">&#39;0x0&#39;</span><span style="color:#ff79c6">/&gt;</span>
<span style="color:#ff79c6">&lt;/source&gt;</span>
<span style="color:#ff79c6">&lt;rom</span> <span style="color:#50fa7b">bar=</span><span style="color:#f1fa8c">&#39;on&#39;</span> <span style="color:#50fa7b">file=</span><span style="color:#f1fa8c">&#39;/usr/share/vgabios/gtx1060-patched.rom&#39;</span><span style="color:#ff79c6">/&gt;</span>
<span style="color:#ff79c6">&lt;address</span> <span style="color:#50fa7b">type=</span><span style="color:#f1fa8c">&#39;pci&#39;</span> <span style="color:#50fa7b">domain=</span><span style="color:#f1fa8c">&#39;0x0000&#39;</span> <span style="color:#50fa7b">bus=</span><span style="color:#f1fa8c">&#39;0x03&#39;</span> <span style="color:#50fa7b">slot=</span><span style="color:#f1fa8c">&#39;0x00&#39;</span> <span style="color:#50fa7b">function=</span><span style="color:#f1fa8c">&#39;0x0&#39;</span> <span style="color:#50fa7b">multifunction=</span><span style="color:#f1fa8c">&#39;on&#39;</span><span style="color:#ff79c6">/&gt;</span>
<span style="color:#ff79c6">&lt;/hostdev&gt;</span></code></pre></div>
<h3 id="vm-networking">VM Networking</h3>
<p><strong>Scripts</strong><br>
<a href="/posts/windows10-kvm/macvlan/">macvlan.sh</a><br>
<a href="/posts/windows10-kvm/macvlan-service/">macvlan.service</a></p>
<p><strong>Virt-Manager Settings</strong><br>
<img src="/posts/windows10-kvm/images/network.png" alt="Virt-Manager-Networking"></p>
<h3 id="cpu-settings">CPU Settings</h3>
<p><div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:1;-o-tab-size:1;tab-size:1"><code class="language-xml" data-lang="xml"><span style="color:#ff79c6">&lt;cputune&gt;</span>
<span style="color:#ff79c6">&lt;vcpupin</span> <span style="color:#50fa7b">vcpu=</span><span style="color:#f1fa8c">&#39;0&#39;</span> <span style="color:#50fa7b">cpuset=</span><span style="color:#f1fa8c">&#39;2&#39;</span><span style="color:#ff79c6">/&gt;</span>
<span style="color:#ff79c6">&lt;vcpupin</span> <span style="color:#50fa7b">vcpu=</span><span style="color:#f1fa8c">&#39;1&#39;</span> <span style="color:#50fa7b">cpuset=</span><span style="color:#f1fa8c">&#39;8&#39;</span><span style="color:#ff79c6">/&gt;</span>
<span style="color:#ff79c6">&lt;vcpupin</span> <span style="color:#50fa7b">vcpu=</span><span style="color:#f1fa8c">&#39;2&#39;</span> <span style="color:#50fa7b">cpuset=</span><span style="color:#f1fa8c">&#39;3&#39;</span><span style="color:#ff79c6">/&gt;</span>
<span style="color:#ff79c6">&lt;vcpupin</span> <span style="color:#50fa7b">vcpu=</span><span style="color:#f1fa8c">&#39;3&#39;</span> <span style="color:#50fa7b">cpuset=</span><span style="color:#f1fa8c">&#39;9&#39;</span><span style="color:#ff79c6">/&gt;</span>
<span style="color:#ff79c6">&lt;vcpupin</span> <span style="color:#50fa7b">vcpu=</span><span style="color:#f1fa8c">&#39;4&#39;</span> <span style="color:#50fa7b">cpuset=</span><span style="color:#f1fa8c">&#39;4&#39;</span><span style="color:#ff79c6">/&gt;</span>
<span style="color:#ff79c6">&lt;vcpupin</span> <span style="color:#50fa7b">vcpu=</span><span style="color:#f1fa8c">&#39;5&#39;</span> <span style="color:#50fa7b">cpuset=</span><span style="color:#f1fa8c">&#39;10&#39;</span><span style="color:#ff79c6">/&gt;</span>
<span style="color:#ff79c6">&lt;vcpupin</span> <span style="color:#50fa7b">vcpu=</span><span style="color:#f1fa8c">&#39;6&#39;</span> <span style="color:#50fa7b">cpuset=</span><span style="color:#f1fa8c">&#39;5&#39;</span><span style="color:#ff79c6">/&gt;</span>
<span style="color:#ff79c6">&lt;vcpupin</span> <span style="color:#50fa7b">vcpu=</span><span style="color:#f1fa8c">&#39;7&#39;</span> <span style="color:#50fa7b">cpuset=</span><span style="color:#f1fa8c">&#39;11&#39;</span><span style="color:#ff79c6">/&gt;</span>
<span style="color:#ff79c6">&lt;emulatorpin</span> <span style="color:#50fa7b">cpuset=</span><span style="color:#f1fa8c">&#39;0-1,6-7&#39;</span><span style="color:#ff79c6">/&gt;</span>
<span style="color:#ff79c6">&lt;/cputune&gt;</span></code></pre></div>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:1;-o-tab-size:1;tab-size:1"><code class="language-xml" data-lang="xml"> <span style="color:#ff79c6">&lt;cpu</span> <span style="color:#50fa7b">mode=</span><span style="color:#f1fa8c">&#39;host-passthrough&#39;</span> <span style="color:#50fa7b">check=</span><span style="color:#f1fa8c">&#39;none&#39;</span> <span style="color:#50fa7b">migratable=</span><span style="color:#f1fa8c">&#39;off&#39;</span><span style="color:#ff79c6">&gt;</span>
<span style="color:#ff79c6">&lt;topology</span> <span style="color:#50fa7b">sockets=</span><span style="color:#f1fa8c">&#39;1&#39;</span> <span style="color:#50fa7b">dies=</span><span style="color:#f1fa8c">&#39;1&#39;</span> <span style="color:#50fa7b">cores=</span><span style="color:#f1fa8c">&#39;4&#39;</span> <span style="color:#50fa7b">threads=</span><span style="color:#f1fa8c">&#39;2&#39;</span><span style="color:#ff79c6">/&gt;</span>
<span style="color:#ff79c6">&lt;cache</span> <span style="color:#50fa7b">mode=</span><span style="color:#f1fa8c">&#39;passthrough&#39;</span><span style="color:#ff79c6">/&gt;</span>
<span style="color:#ff79c6">&lt;feature</span> <span style="color:#50fa7b">policy=</span><span style="color:#f1fa8c">&#39;require&#39;</span> <span style="color:#50fa7b">name=</span><span style="color:#f1fa8c">&#39;topoext&#39;</span><span style="color:#ff79c6">/&gt;</span>
<span style="color:#ff79c6">&lt;/cpu&gt;</span></code></pre></div></p>
<h3 id="sata-passthrough">Sata Passthrough</h3>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:1;-o-tab-size:1;tab-size:1"><code class="language-xml" data-lang="xml"><span style="color:#ff79c6">&lt;disk</span> <span style="color:#50fa7b">type=</span><span style="color:#f1fa8c">&#39;block&#39;</span> <span style="color:#50fa7b">device=</span><span style="color:#f1fa8c">&#39;disk&#39;</span><span style="color:#ff79c6">&gt;</span>
<span style="color:#ff79c6">&lt;driver</span> <span style="color:#50fa7b">name=</span><span style="color:#f1fa8c">&#39;qemu&#39;</span> <span style="color:#50fa7b">type=</span><span style="color:#f1fa8c">&#39;raw&#39;</span> <span style="color:#50fa7b">cache=</span><span style="color:#f1fa8c">&#39;none&#39;</span> <span style="color:#50fa7b">io=</span><span style="color:#f1fa8c">&#39;native&#39;</span> <span style="color:#50fa7b">discard=</span><span style="color:#f1fa8c">&#39;unmap&#39;</span><span style="color:#ff79c6">/&gt;</span>
<span style="color:#ff79c6">&lt;source</span> <span style="color:#50fa7b">dev=</span><span style="color:#f1fa8c">&#39;/dev/disk/by-id/ata-....&#39;</span><span style="color:#ff79c6">/&gt;</span>
<span style="color:#ff79c6">&lt;target</span> <span style="color:#50fa7b">dev=</span><span style="color:#f1fa8c">&#39;sda&#39;</span> <span style="color:#50fa7b">bus=</span><span style="color:#f1fa8c">&#39;sata&#39;</span><span style="color:#ff79c6">/&gt;</span>
<span style="color:#ff79c6">&lt;boot</span> <span style="color:#50fa7b">order=</span><span style="color:#f1fa8c">&#39;1&#39;</span><span style="color:#ff79c6">/&gt;</span>
<span style="color:#ff79c6">&lt;address</span> <span style="color:#50fa7b">type=</span><span style="color:#f1fa8c">&#39;drive&#39;</span> <span style="color:#50fa7b">controller=</span><span style="color:#f1fa8c">&#39;0&#39;</span> <span style="color:#50fa7b">bus=</span><span style="color:#f1fa8c">&#39;0&#39;</span> <span style="color:#50fa7b">target=</span><span style="color:#f1fa8c">&#39;0&#39;</span> <span style="color:#50fa7b">unit=</span><span style="color:#f1fa8c">&#39;0&#39;</span><span style="color:#ff79c6">/&gt;</span>
<span style="color:#ff79c6">&lt;/disk&gt;</span></code></pre></div>
<h3 id="virt-manager-hardware-overview">Virt-Manager Hardware Overview</h3>
<p><img src="/posts/windows10-kvm/images/hardware-overview.png" alt="Virt-Manager-Overview"></p>
</div>
<div class="post-footer">
</div>
</article>
</main>
</body>
</html>

View File

@@ -0,0 +1,99 @@
<!doctype html>
<html lang="en-us">
<head>
<title>Windows 10 KVM Single-GPU Passthrough - macvlan Service // Phoenix&#39;s Personal Blog</title>
<link rel="shortcut icon" href="/favicon.ico" />
<meta charset="utf-8" />
<meta name="generator" content="Hugo 0.83.0" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="author" content="Phoenix" />
<meta name="description" content="" />
<link rel="stylesheet" href="https://blog.fluttershub.com/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Windows 10 KVM Single-GPU Passthrough - macvlan Service"/>
<meta name="twitter:description" content="# /etc/systemd/system/macvlan.service [Unit] Description=MACVLAN bridge to share a physical network interface with KVM/QEMU hosts. Documentation=https://www.furorteutonicus.eu/2013/08/04/enabling-host-guest-networking-with-kvm-macvlan-and-macvtap/ After=network-online.target Wants=network-online.target Before=libvirt-guests.service [Service] Type=oneshot RemainAfterExit=yes ExecStart=/home/phoenix/macvlan/macvlan.sh [Install] WantedBy=multi-user.target "/>
<meta property="og:title" content="Windows 10 KVM Single-GPU Passthrough - macvlan Service" />
<meta property="og:description" content="# /etc/systemd/system/macvlan.service [Unit] Description=MACVLAN bridge to share a physical network interface with KVM/QEMU hosts. Documentation=https://www.furorteutonicus.eu/2013/08/04/enabling-host-guest-networking-with-kvm-macvlan-and-macvtap/ After=network-online.target Wants=network-online.target Before=libvirt-guests.service [Service] Type=oneshot RemainAfterExit=yes ExecStart=/home/phoenix/macvlan/macvlan.sh [Install] WantedBy=multi-user.target " />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://blog.fluttershub.com/posts/windows10-kvm/macvlan-service/" /><meta property="article:section" content="posts" />
<meta property="article:published_time" content="2020-05-18T00:00:00&#43;00:00" />
<meta property="article:modified_time" content="2020-05-18T00:00:00&#43;00:00" />
</head>
<body>
<header class="app-header">
<a class="gradient-border" href="https://blog.fluttershub.com/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
<h2>Phoenix&#39;s Personal Blog</h2>
<nav class="app-header-menu">
<a class="app-header-menu-item" href="/">Home</a>
|
<a class="app-header-menu-item" href="/tags/">Tags</a>
</nav>
<p>Land of random projects i do.</p>
<div class="app-header-social">
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-github">
<title>Github</title>
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
</svg>
</a>
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-twitter">
<title>Twitter</title>
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
</svg>
</a>
</div>
</header>
<main class="app-container">
<article class="post">
<header class="post-header">
<h1 class ="post-title">Windows 10 KVM Single-GPU Passthrough - macvlan Service</h1>
<div class="post-meta">
<div>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-calendar">
<title>calendar</title>
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line>
</svg>
May 18, 2020
</div>
</div>
</header>
<div class="post-content">
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:1;-o-tab-size:1;tab-size:1"><code class="language-bash" data-lang="bash"><span style="color:#6272a4"># /etc/systemd/system/macvlan.service</span>
<span style="color:#ff79c6">[</span>Unit<span style="color:#ff79c6">]</span>
<span style="color:#8be9fd;font-style:italic">Description</span><span style="color:#ff79c6">=</span>MACVLAN bridge to share a physical network interface with KVM/QEMU hosts.
<span style="color:#8be9fd;font-style:italic">Documentation</span><span style="color:#ff79c6">=</span>https://www.furorteutonicus.eu/2013/08/04/enabling-host-guest-networking-with-kvm-macvlan-and-macvtap/
<span style="color:#8be9fd;font-style:italic">After</span><span style="color:#ff79c6">=</span>network-online.target
<span style="color:#8be9fd;font-style:italic">Wants</span><span style="color:#ff79c6">=</span>network-online.target
<span style="color:#8be9fd;font-style:italic">Before</span><span style="color:#ff79c6">=</span>libvirt-guests.service
<span style="color:#ff79c6">[</span>Service<span style="color:#ff79c6">]</span>
<span style="color:#8be9fd;font-style:italic">Type</span><span style="color:#ff79c6">=</span>oneshot
<span style="color:#8be9fd;font-style:italic">RemainAfterExit</span><span style="color:#ff79c6">=</span>yes
<span style="color:#8be9fd;font-style:italic">ExecStart</span><span style="color:#ff79c6">=</span>/home/phoenix/macvlan/macvlan.sh
<span style="color:#ff79c6">[</span>Install<span style="color:#ff79c6">]</span>
<span style="color:#8be9fd;font-style:italic">WantedBy</span><span style="color:#ff79c6">=</span>multi-user.target</code></pre></div>
</div>
<div class="post-footer">
</div>
</article>
</main>
</body>
</html>

View File

@@ -0,0 +1,147 @@
<!doctype html>
<html lang="en-us">
<head>
<title>Windows 10 KVM Single-GPU Passthrough - macvlan Script // Phoenix&#39;s Personal Blog</title>
<link rel="shortcut icon" href="/favicon.ico" />
<meta charset="utf-8" />
<meta name="generator" content="Hugo 0.83.0" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="author" content="Phoenix" />
<meta name="description" content="" />
<link rel="stylesheet" href="https://blog.fluttershub.com/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Windows 10 KVM Single-GPU Passthrough - macvlan Script"/>
<meta name="twitter:description" content="#!/bin/sh # Last Edited: 2020-05-18 # From: https://www.furorteutonicus.eu/2013/08/04/enabling-host-guest-networking-with-kvm-macvlan-and-macvtap/ # Let host and guests talk to each other over macvlan. # Configures a macvlan interface on the hypervisor. # Run this on the hypervisor (e.g. in /etc/rc.local) # Made for IPv4; need modification for IPv6. # Meant for a simple network setup with only eth0, # and a static (manual) ip config. # Evert Mouw, 2013. Slightly modified in 2020. HWLINK=enp34s0 MACVLN=macvlan0 TESTHOST=www."/>
<meta property="og:title" content="Windows 10 KVM Single-GPU Passthrough - macvlan Script" />
<meta property="og:description" content="#!/bin/sh # Last Edited: 2020-05-18 # From: https://www.furorteutonicus.eu/2013/08/04/enabling-host-guest-networking-with-kvm-macvlan-and-macvtap/ # Let host and guests talk to each other over macvlan. # Configures a macvlan interface on the hypervisor. # Run this on the hypervisor (e.g. in /etc/rc.local) # Made for IPv4; need modification for IPv6. # Meant for a simple network setup with only eth0, # and a static (manual) ip config. # Evert Mouw, 2013. Slightly modified in 2020. HWLINK=enp34s0 MACVLN=macvlan0 TESTHOST=www." />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://blog.fluttershub.com/posts/windows10-kvm/macvlan/" /><meta property="article:section" content="posts" />
<meta property="article:published_time" content="2020-05-18T00:00:00&#43;00:00" />
<meta property="article:modified_time" content="2020-05-18T00:00:00&#43;00:00" />
</head>
<body>
<header class="app-header">
<a class="gradient-border" href="https://blog.fluttershub.com/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
<h2>Phoenix&#39;s Personal Blog</h2>
<nav class="app-header-menu">
<a class="app-header-menu-item" href="/">Home</a>
|
<a class="app-header-menu-item" href="/tags/">Tags</a>
</nav>
<p>Land of random projects i do.</p>
<div class="app-header-social">
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-github">
<title>Github</title>
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
</svg>
</a>
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-twitter">
<title>Twitter</title>
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
</svg>
</a>
</div>
</header>
<main class="app-container">
<article class="post">
<header class="post-header">
<h1 class ="post-title">Windows 10 KVM Single-GPU Passthrough - macvlan Script</h1>
<div class="post-meta">
<div>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-calendar">
<title>calendar</title>
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line>
</svg>
May 18, 2020
</div>
</div>
</header>
<div class="post-content">
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:1;-o-tab-size:1;tab-size:1"><code class="language-bash" data-lang="bash"><span style="color:#ff79c6">#!/bin/sh
</span><span style="color:#ff79c6"></span><span style="color:#6272a4"># Last Edited: 2020-05-18</span>
<span style="color:#6272a4"># From: https://www.furorteutonicus.eu/2013/08/04/enabling-host-guest-networking-with-kvm-macvlan-and-macvtap/</span>
<span style="color:#6272a4"># Let host and guests talk to each other over macvlan.</span>
<span style="color:#6272a4"># Configures a macvlan interface on the hypervisor.</span>
<span style="color:#6272a4"># Run this on the hypervisor (e.g. in /etc/rc.local)</span>
<span style="color:#6272a4"># Made for IPv4; need modification for IPv6.</span>
<span style="color:#6272a4"># Meant for a simple network setup with only eth0,</span>
<span style="color:#6272a4"># and a static (manual) ip config.</span>
<span style="color:#6272a4"># Evert Mouw, 2013. Slightly modified in 2020.</span>
<span style="color:#8be9fd;font-style:italic">HWLINK</span><span style="color:#ff79c6">=</span>enp34s0
<span style="color:#8be9fd;font-style:italic">MACVLN</span><span style="color:#ff79c6">=</span>macvlan0
<span style="color:#8be9fd;font-style:italic">TESTHOST</span><span style="color:#ff79c6">=</span>www.google.com
<span style="color:#6272a4"># ------------</span>
<span style="color:#6272a4"># test if interface already exists</span>
<span style="color:#6272a4"># ------------</span>
<span style="color:#ff79c6">if</span> ip link show | grep <span style="color:#f1fa8c">&#34;</span><span style="color:#8be9fd;font-style:italic">$MACVLN</span><span style="color:#f1fa8c">@</span><span style="color:#8be9fd;font-style:italic">$HWLINK</span><span style="color:#f1fa8c">&#34;</span> &gt; /dev/null
<span style="color:#ff79c6">then</span>
<span style="color:#8be9fd;font-style:italic">echo</span> <span style="color:#f1fa8c">&#34;Link </span><span style="color:#8be9fd;font-style:italic">$MACVLN</span><span style="color:#f1fa8c"> already exists on </span><span style="color:#8be9fd;font-style:italic">$HWLINK</span><span style="color:#f1fa8c">.&#34;</span>
<span style="color:#8be9fd;font-style:italic">exit</span>
<span style="color:#ff79c6">fi</span>
<span style="color:#6272a4"># ------------</span>
<span style="color:#6272a4"># wait for network availability</span>
<span style="color:#6272a4"># ------------</span>
<span style="color:#ff79c6">while</span> ! ping -q -c <span style="color:#bd93f9">1</span> <span style="color:#8be9fd;font-style:italic">$TESTHOST</span> &gt; /dev/null
<span style="color:#ff79c6">do</span>
<span style="color:#8be9fd;font-style:italic">echo</span> <span style="color:#f1fa8c">&#34;</span><span style="color:#8be9fd;font-style:italic">$0</span><span style="color:#f1fa8c">: Cannot ping </span><span style="color:#8be9fd;font-style:italic">$TESTHOST</span><span style="color:#f1fa8c">, waiting another 5 seconds.&#34;</span>
sleep <span style="color:#bd93f9">5</span>
<span style="color:#ff79c6">done</span>
<span style="color:#6272a4"># ------------</span>
<span style="color:#6272a4"># get network config</span>
<span style="color:#6272a4"># ------------</span>
<span style="color:#8be9fd;font-style:italic">IP</span><span style="color:#ff79c6">=</span><span style="color:#ff79c6">$(</span>ip address show dev <span style="color:#8be9fd;font-style:italic">$HWLINK</span> | grep <span style="color:#f1fa8c">&#34;inet &#34;</span> | awk <span style="color:#f1fa8c">&#39;{print $2}&#39;</span><span style="color:#ff79c6">)</span>
<span style="color:#8be9fd;font-style:italic">NETWORK</span><span style="color:#ff79c6">=</span><span style="color:#ff79c6">$(</span>ip -o route | grep <span style="color:#8be9fd;font-style:italic">$HWLINK</span> | grep -v default | awk <span style="color:#f1fa8c">&#39;{print $1}&#39;</span><span style="color:#ff79c6">)</span>
<span style="color:#8be9fd;font-style:italic">GATEWAY</span><span style="color:#ff79c6">=</span><span style="color:#ff79c6">$(</span>ip -o route | grep default | awk <span style="color:#f1fa8c">&#39;{print $3}&#39;</span><span style="color:#ff79c6">)</span>
<span style="color:#6272a4"># ------------</span>
<span style="color:#6272a4"># setting up $MACVLN interface</span>
<span style="color:#6272a4"># ------------</span>
ip link add <span style="color:#8be9fd;font-style:italic">$MACVLN</span> link <span style="color:#8be9fd;font-style:italic">$HWLINK</span> <span style="color:#8be9fd;font-style:italic">type</span> macvlan mode bridge
ip address add <span style="color:#8be9fd;font-style:italic">$IP</span> dev <span style="color:#8be9fd;font-style:italic">$MACVLN</span>
ip link <span style="color:#8be9fd;font-style:italic">set</span> dev <span style="color:#8be9fd;font-style:italic">$MACVLN</span> up
<span style="color:#6272a4"># ------------</span>
<span style="color:#6272a4"># routing table</span>
<span style="color:#6272a4"># ------------</span>
<span style="color:#6272a4"># empty routes</span>
ip route flush dev <span style="color:#8be9fd;font-style:italic">$HWLINK</span>
ip route flush dev <span style="color:#8be9fd;font-style:italic">$MACVLN</span>
<span style="color:#6272a4"># add routes</span>
ip route add <span style="color:#8be9fd;font-style:italic">$NETWORK</span> dev <span style="color:#8be9fd;font-style:italic">$MACVLN</span> metric <span style="color:#bd93f9">0</span>
<span style="color:#6272a4"># add the default gateway</span>
ip route add default via <span style="color:#8be9fd;font-style:italic">$GATEWAY</span></code></pre></div>
</div>
<div class="post-footer">
</div>
</article>
</main>
</body>
</html>

37
src/build/sitemap.xml Normal file
View File

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>https://blog.fluttershub.com/tags/kvm/</loc>
<lastmod>2020-05-18T00:00:00+00:00</lastmod>
</url><url>
<loc>https://blog.fluttershub.com/tags/linux/</loc>
<lastmod>2020-05-18T00:00:00+00:00</lastmod>
</url><url>
<loc>https://blog.fluttershub.com/</loc>
<lastmod>2020-05-18T00:00:00+00:00</lastmod>
</url><url>
<loc>https://blog.fluttershub.com/posts/</loc>
<lastmod>2020-05-18T00:00:00+00:00</lastmod>
</url><url>
<loc>https://blog.fluttershub.com/tags/</loc>
<lastmod>2020-05-18T00:00:00+00:00</lastmod>
</url><url>
<loc>https://blog.fluttershub.com/tags/virtualization/</loc>
<lastmod>2020-05-18T00:00:00+00:00</lastmod>
</url><url>
<loc>https://blog.fluttershub.com/tags/windows/</loc>
<lastmod>2020-05-18T00:00:00+00:00</lastmod>
</url><url>
<loc>https://blog.fluttershub.com/posts/windows10-kvm/</loc>
<lastmod>2020-05-18T00:00:00+00:00</lastmod>
</url><url>
<loc>https://blog.fluttershub.com/posts/windows10-kvm/macvlan/</loc>
<lastmod>2020-05-18T00:00:00+00:00</lastmod>
</url><url>
<loc>https://blog.fluttershub.com/posts/windows10-kvm/macvlan-service/</loc>
<lastmod>2020-05-18T00:00:00+00:00</lastmod>
</url><url>
<loc>https://blog.fluttershub.com/categories/</loc>
</url>
</urlset>

112
src/build/tags/index.html Normal file
View File

@@ -0,0 +1,112 @@
<!doctype html>
<html lang="en-us">
<head>
<title>Tags // Phoenix&#39;s Personal Blog</title>
<link rel="shortcut icon" href="/favicon.ico" />
<meta charset="utf-8" />
<meta name="generator" content="Hugo 0.83.0" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="author" content="Phoenix" />
<meta name="description" content="" />
<link rel="stylesheet" href="https://blog.fluttershub.com/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Tags"/>
<meta name="twitter:description" content="Land of random projects i do."/>
<meta property="og:title" content="Tags" />
<meta property="og:description" content="Land of random projects i do." />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://blog.fluttershub.com/tags/" />
</head>
<body>
<header class="app-header">
<a class="gradient-border" href="https://blog.fluttershub.com/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
<h2>Phoenix&#39;s Personal Blog</h2>
<nav class="app-header-menu">
<a class="app-header-menu-item" href="/">Home</a>
|
<a class="app-header-menu-item" href="/tags/">Tags</a>
</nav>
<p>Land of random projects i do.</p>
<div class="app-header-social">
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-github">
<title>Github</title>
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
</svg>
</a>
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-twitter">
<title>Twitter</title>
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
</svg>
</a>
</div>
</header>
<main class="app-container">
<article>
<h1>Tags</h1>
<ul class="tags-list">
<li class="tags-list-item">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tag">
<title>tag</title>
<path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path><line x1="7" y1="7" x2="7.01" y2="7"></line>
</svg>
<a class="tags-list-item-title" href="https://blog.fluttershub.com/tags/kvm/">
(1)
kvm
</a>
</li>
<li class="tags-list-item">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tag">
<title>tag</title>
<path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path><line x1="7" y1="7" x2="7.01" y2="7"></line>
</svg>
<a class="tags-list-item-title" href="https://blog.fluttershub.com/tags/linux/">
(1)
linux
</a>
</li>
<li class="tags-list-item">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tag">
<title>tag</title>
<path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path><line x1="7" y1="7" x2="7.01" y2="7"></line>
</svg>
<a class="tags-list-item-title" href="https://blog.fluttershub.com/tags/virtualization/">
(1)
virtualization
</a>
</li>
<li class="tags-list-item">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tag">
<title>tag</title>
<path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path><line x1="7" y1="7" x2="7.01" y2="7"></line>
</svg>
<a class="tags-list-item-title" href="https://blog.fluttershub.com/tags/windows/">
(1)
windows
</a>
</li>
</ul>
</article>
</main>
</body>
</html>

47
src/build/tags/index.xml Normal file
View File

@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Tags on Phoenix&#39;s Personal Blog</title>
<link>https://blog.fluttershub.com/tags/</link>
<description>Recent content in Tags on Phoenix&#39;s Personal Blog</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language>
<lastBuildDate>Mon, 18 May 2020 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.fluttershub.com/tags/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>kvm</title>
<link>https://blog.fluttershub.com/tags/kvm/</link>
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
<guid>https://blog.fluttershub.com/tags/kvm/</guid>
<description></description>
</item>
<item>
<title>linux</title>
<link>https://blog.fluttershub.com/tags/linux/</link>
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
<guid>https://blog.fluttershub.com/tags/linux/</guid>
<description></description>
</item>
<item>
<title>virtualization</title>
<link>https://blog.fluttershub.com/tags/virtualization/</link>
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
<guid>https://blog.fluttershub.com/tags/virtualization/</guid>
<description></description>
</item>
<item>
<title>windows</title>
<link>https://blog.fluttershub.com/tags/windows/</link>
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
<guid>https://blog.fluttershub.com/tags/windows/</guid>
<description></description>
</item>
</channel>
</rss>

View File

@@ -0,0 +1,84 @@
<!doctype html>
<html lang="en-us">
<head>
<title>kvm // Phoenix&#39;s Personal Blog</title>
<link rel="shortcut icon" href="/favicon.ico" />
<meta charset="utf-8" />
<meta name="generator" content="Hugo 0.83.0" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="author" content="Phoenix" />
<meta name="description" content="" />
<link rel="stylesheet" href="https://blog.fluttershub.com/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="kvm"/>
<meta name="twitter:description" content="Land of random projects i do."/>
<meta property="og:title" content="kvm" />
<meta property="og:description" content="Land of random projects i do." />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://blog.fluttershub.com/tags/kvm/" />
</head>
<body>
<header class="app-header">
<a class="gradient-border" href="https://blog.fluttershub.com/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
<h2>Phoenix&#39;s Personal Blog</h2>
<nav class="app-header-menu">
<a class="app-header-menu-item" href="/">Home</a>
|
<a class="app-header-menu-item" href="/tags/">Tags</a>
</nav>
<p>Land of random projects i do.</p>
<div class="app-header-social">
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-github">
<title>Github</title>
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
</svg>
</a>
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-twitter">
<title>Twitter</title>
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
</svg>
</a>
</div>
</header>
<main class="app-container">
<article>
<h1>kvm</h1>
<ul class="posts-list">
<li class="posts-list-item">
<a class="posts-list-item-title" href="https://blog.fluttershub.com/posts/windows10-kvm/">Windows 10 KVM Single-GPU Passthrough</a>
<span class="posts-list-item-description">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-calendar">
<title>calendar</title>
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line>
</svg>
May 18, 2020
</span>
</li>
</ul>
</article>
</main>
</body>
</html>

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>kvm on Phoenix&#39;s Personal Blog</title>
<link>https://blog.fluttershub.com/tags/kvm/</link>
<description>Recent content in kvm on Phoenix&#39;s Personal Blog</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language>
<lastBuildDate>Mon, 18 May 2020 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.fluttershub.com/tags/kvm/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Windows 10 KVM Single-GPU Passthrough</title>
<link>https://blog.fluttershub.com/posts/windows10-kvm/</link>
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
<guid>https://blog.fluttershub.com/posts/windows10-kvm/</guid>
<description>Note: This is here as notes and shouldn&amp;rsquo;t be taken as a direct guide. Table of Contents Host Specs Final VM Configuration Extra Kernal Arguements Nvidia GPU VFIO patch (This is required on 10XX Series) VM Networking CPU Settings Sata Passthrough Virt-Manager Hardware Overview Host Specs CPU: AMD Ryzen 5 3600 GPU: NVIDIA GeForce GTX 1060 6GB Motherboard: MSI B450 Tomahawk Max OS: Garuda Linux: Spotted-Eagle Kernel: 5.</description>
</item>
</channel>
</rss>

View File

@@ -0,0 +1 @@
<!DOCTYPE html><html><head><title>https://blog.fluttershub.com/tags/kvm/</title><link rel="canonical" href="https://blog.fluttershub.com/tags/kvm/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=https://blog.fluttershub.com/tags/kvm/" /></head></html>

View File

@@ -0,0 +1,84 @@
<!doctype html>
<html lang="en-us">
<head>
<title>linux // Phoenix&#39;s Personal Blog</title>
<link rel="shortcut icon" href="/favicon.ico" />
<meta charset="utf-8" />
<meta name="generator" content="Hugo 0.83.0" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="author" content="Phoenix" />
<meta name="description" content="" />
<link rel="stylesheet" href="https://blog.fluttershub.com/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="linux"/>
<meta name="twitter:description" content="Land of random projects i do."/>
<meta property="og:title" content="linux" />
<meta property="og:description" content="Land of random projects i do." />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://blog.fluttershub.com/tags/linux/" />
</head>
<body>
<header class="app-header">
<a class="gradient-border" href="https://blog.fluttershub.com/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
<h2>Phoenix&#39;s Personal Blog</h2>
<nav class="app-header-menu">
<a class="app-header-menu-item" href="/">Home</a>
|
<a class="app-header-menu-item" href="/tags/">Tags</a>
</nav>
<p>Land of random projects i do.</p>
<div class="app-header-social">
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-github">
<title>Github</title>
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
</svg>
</a>
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-twitter">
<title>Twitter</title>
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
</svg>
</a>
</div>
</header>
<main class="app-container">
<article>
<h1>linux</h1>
<ul class="posts-list">
<li class="posts-list-item">
<a class="posts-list-item-title" href="https://blog.fluttershub.com/posts/windows10-kvm/">Windows 10 KVM Single-GPU Passthrough</a>
<span class="posts-list-item-description">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-calendar">
<title>calendar</title>
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line>
</svg>
May 18, 2020
</span>
</li>
</ul>
</article>
</main>
</body>
</html>

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>linux on Phoenix&#39;s Personal Blog</title>
<link>https://blog.fluttershub.com/tags/linux/</link>
<description>Recent content in linux on Phoenix&#39;s Personal Blog</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language>
<lastBuildDate>Mon, 18 May 2020 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.fluttershub.com/tags/linux/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Windows 10 KVM Single-GPU Passthrough</title>
<link>https://blog.fluttershub.com/posts/windows10-kvm/</link>
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
<guid>https://blog.fluttershub.com/posts/windows10-kvm/</guid>
<description>Note: This is here as notes and shouldn&amp;rsquo;t be taken as a direct guide. Table of Contents Host Specs Final VM Configuration Extra Kernal Arguements Nvidia GPU VFIO patch (This is required on 10XX Series) VM Networking CPU Settings Sata Passthrough Virt-Manager Hardware Overview Host Specs CPU: AMD Ryzen 5 3600 GPU: NVIDIA GeForce GTX 1060 6GB Motherboard: MSI B450 Tomahawk Max OS: Garuda Linux: Spotted-Eagle Kernel: 5.</description>
</item>
</channel>
</rss>

View File

@@ -0,0 +1 @@
<!DOCTYPE html><html><head><title>https://blog.fluttershub.com/tags/linux/</title><link rel="canonical" href="https://blog.fluttershub.com/tags/linux/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=https://blog.fluttershub.com/tags/linux/" /></head></html>

View File

@@ -0,0 +1,84 @@
<!doctype html>
<html lang="en-us">
<head>
<title>virtualization // Phoenix&#39;s Personal Blog</title>
<link rel="shortcut icon" href="/favicon.ico" />
<meta charset="utf-8" />
<meta name="generator" content="Hugo 0.83.0" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="author" content="Phoenix" />
<meta name="description" content="" />
<link rel="stylesheet" href="https://blog.fluttershub.com/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="virtualization"/>
<meta name="twitter:description" content="Land of random projects i do."/>
<meta property="og:title" content="virtualization" />
<meta property="og:description" content="Land of random projects i do." />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://blog.fluttershub.com/tags/virtualization/" />
</head>
<body>
<header class="app-header">
<a class="gradient-border" href="https://blog.fluttershub.com/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
<h2>Phoenix&#39;s Personal Blog</h2>
<nav class="app-header-menu">
<a class="app-header-menu-item" href="/">Home</a>
|
<a class="app-header-menu-item" href="/tags/">Tags</a>
</nav>
<p>Land of random projects i do.</p>
<div class="app-header-social">
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-github">
<title>Github</title>
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
</svg>
</a>
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-twitter">
<title>Twitter</title>
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
</svg>
</a>
</div>
</header>
<main class="app-container">
<article>
<h1>virtualization</h1>
<ul class="posts-list">
<li class="posts-list-item">
<a class="posts-list-item-title" href="https://blog.fluttershub.com/posts/windows10-kvm/">Windows 10 KVM Single-GPU Passthrough</a>
<span class="posts-list-item-description">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-calendar">
<title>calendar</title>
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line>
</svg>
May 18, 2020
</span>
</li>
</ul>
</article>
</main>
</body>
</html>

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>virtualization on Phoenix&#39;s Personal Blog</title>
<link>https://blog.fluttershub.com/tags/virtualization/</link>
<description>Recent content in virtualization on Phoenix&#39;s Personal Blog</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language>
<lastBuildDate>Mon, 18 May 2020 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.fluttershub.com/tags/virtualization/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Windows 10 KVM Single-GPU Passthrough</title>
<link>https://blog.fluttershub.com/posts/windows10-kvm/</link>
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
<guid>https://blog.fluttershub.com/posts/windows10-kvm/</guid>
<description>Note: This is here as notes and shouldn&amp;rsquo;t be taken as a direct guide. Table of Contents Host Specs Final VM Configuration Extra Kernal Arguements Nvidia GPU VFIO patch (This is required on 10XX Series) VM Networking CPU Settings Sata Passthrough Virt-Manager Hardware Overview Host Specs CPU: AMD Ryzen 5 3600 GPU: NVIDIA GeForce GTX 1060 6GB Motherboard: MSI B450 Tomahawk Max OS: Garuda Linux: Spotted-Eagle Kernel: 5.</description>
</item>
</channel>
</rss>

View File

@@ -0,0 +1 @@
<!DOCTYPE html><html><head><title>https://blog.fluttershub.com/tags/virtualization/</title><link rel="canonical" href="https://blog.fluttershub.com/tags/virtualization/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=https://blog.fluttershub.com/tags/virtualization/" /></head></html>

View File

@@ -0,0 +1,84 @@
<!doctype html>
<html lang="en-us">
<head>
<title>windows // Phoenix&#39;s Personal Blog</title>
<link rel="shortcut icon" href="/favicon.ico" />
<meta charset="utf-8" />
<meta name="generator" content="Hugo 0.83.0" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="author" content="Phoenix" />
<meta name="description" content="" />
<link rel="stylesheet" href="https://blog.fluttershub.com/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="windows"/>
<meta name="twitter:description" content="Land of random projects i do."/>
<meta property="og:title" content="windows" />
<meta property="og:description" content="Land of random projects i do." />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://blog.fluttershub.com/tags/windows/" />
</head>
<body>
<header class="app-header">
<a class="gradient-border" href="https://blog.fluttershub.com/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
<h2>Phoenix&#39;s Personal Blog</h2>
<nav class="app-header-menu">
<a class="app-header-menu-item" href="/">Home</a>
|
<a class="app-header-menu-item" href="/tags/">Tags</a>
</nav>
<p>Land of random projects i do.</p>
<div class="app-header-social">
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-github">
<title>Github</title>
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
</svg>
</a>
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-twitter">
<title>Twitter</title>
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
</svg>
</a>
</div>
</header>
<main class="app-container">
<article>
<h1>windows</h1>
<ul class="posts-list">
<li class="posts-list-item">
<a class="posts-list-item-title" href="https://blog.fluttershub.com/posts/windows10-kvm/">Windows 10 KVM Single-GPU Passthrough</a>
<span class="posts-list-item-description">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-calendar">
<title>calendar</title>
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line>
</svg>
May 18, 2020
</span>
</li>
</ul>
</article>
</main>
</body>
</html>

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>windows on Phoenix&#39;s Personal Blog</title>
<link>https://blog.fluttershub.com/tags/windows/</link>
<description>Recent content in windows on Phoenix&#39;s Personal Blog</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language>
<lastBuildDate>Mon, 18 May 2020 00:00:00 +0000</lastBuildDate><atom:link href="https://blog.fluttershub.com/tags/windows/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Windows 10 KVM Single-GPU Passthrough</title>
<link>https://blog.fluttershub.com/posts/windows10-kvm/</link>
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
<guid>https://blog.fluttershub.com/posts/windows10-kvm/</guid>
<description>Note: This is here as notes and shouldn&amp;rsquo;t be taken as a direct guide. Table of Contents Host Specs Final VM Configuration Extra Kernal Arguements Nvidia GPU VFIO patch (This is required on 10XX Series) VM Networking CPU Settings Sata Passthrough Virt-Manager Hardware Overview Host Specs CPU: AMD Ryzen 5 3600 GPU: NVIDIA GeForce GTX 1060 6GB Motherboard: MSI B450 Tomahawk Max OS: Garuda Linux: Spotted-Eagle Kernel: 5.</description>
</item>
</channel>
</rss>

View File

@@ -0,0 +1 @@
<!DOCTYPE html><html><head><title>https://blog.fluttershub.com/tags/windows/</title><link rel="canonical" href="https://blog.fluttershub.com/tags/windows/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=https://blog.fluttershub.com/tags/windows/" /></head></html>

63
src/config.toml Normal file
View File

@@ -0,0 +1,63 @@
baseURL = "https://blog.fluttershub.com/"
theme = "m10c"
languageCode = "en-us"
title = "Phoenix's Personal Blog"
homepage = "https://fluttershub.com"
tags = ["blog","personal","coding"]
[menu]
[[menu.main]]
identifier = "home"
name = "Home"
url = "/"
weight = 1
[[menu.main]]
identifier = "tags"
name = "Tags"
url = "/tags/"
weight = 2
# [[menu.main]]
# identifier = "about"
# name = "About Me"
# url = "/about/"
# weight = 3
[params]
author = "Phoenix"
description="Land of random projects i do."
menu_item_separator = " | "
noreadingtime = true
[[params.social]]
icon = "github"
name = "Github"
url = "https://github.com/HotaruBlaze"
[[params.social]]
icon = "twitter"
name = "Twitter"
url = "https://twitter.com/hotarublaze"
# [style]
# darkestColor = "#d35050"
# darkColor = "#212121"
# lightColor = "#f5e3e0"
# lightestColor = "#f5f5f5"
# primaryColor = "#e12f"
[markup]
[markup.highlight]
anchorLineNos = false
codeFences = true
guessSyntax = false
hl_Lines = ""
lineAnchors = ""
lineNoStart = 1
lineNos = false
lineNumbersInTable = true
noClasses = true
style = "dracula"
tabWidth = 1
[markup.tableOfContents]
endLevel = 3
ordered = false
startLevel = 3

View File

@@ -0,0 +1,102 @@
+++
title = "Windows 10 KVM Single-GPU Passthrough"
tags = ["virtualization","kvm","windows","linux"]
date = "2020-05-18"
+++
## Note: This is here as notes and shouldn't be taken as a direct guide.
# Table of Contents
{{< table_of_contents >}}
---
### Host Specs
{{< highlight txt >}}
CPU: AMD Ryzen 5 3600
GPU: NVIDIA GeForce GTX 1060 6GB
Motherboard: MSI B450 Tomahawk Max
OS: Garuda Linux: Spotted-Eagle
Kernel: 5.12.3-zen1-1-zen
Memory: 16GB
{{< /highlight >}}
### Final VM Configuration
{{< highlight txt >}}
CPU: 4 Cores, 8 Threads
GPU: NVIDIA GeForce GTX 1060 6GB
Memory: 10GB
Chipset: Q35
Firmware: OVMF
PCI Passthrough: Advanced Micro Devices, Inc. [AMD] 400 Series Chipset USB 3.1 XHCI Controller
PCI Passthrough: Advanced Micro Devices, Inc. [AMD] Matisse USB 3.0 Host Controller
{{< /highlight >}}
### Extra Kernal Arguements
{{< highlight txt >}}
video:vesafb=off video:efifb=off amd_iommu=on iommu=pt iommu=1 pcie_acs_override=downstream,multifunction
{{< /highlight >}}
### Nvidia GPU VFIO patch (This is required on 10XX Series)
Original bios downloaded from: https://www.techpowerup.com/vgabios/
[NVIDIA vBIOS VFIO Patcher](https://github.com/Matoking/NVIDIA-vBIOS-VFIO-Patcher)
{{< highlight bash >}}
git clone https://github.com/Matoking/NVIDIA-vBIOS-VFIO-Patcher
cd NVIDIA-vBIOS-VFIO-Patcher
python nvidia_vbios_vfio_patcher.py -i /home/phoenix/download/gtx1060.rom -o ./gtx1060-patched.rom
cp ./gtx1060-patched.rom /usr/share/vgabios/gtx1060-patched.rom
{{< /highlight >}}
#### Make sure Bar is toggled, Pass the file for the rom, and the second address contains multifunction='on'
{{< highlight xml >}}
<hostdev mode='subsystem' type='pci' managed='yes'>
<source>
<address domain='0x0000' bus='0x26' slot='0x00' function='0x0'/>
</source>
<rom bar='on' file='/usr/share/vgabios/gtx1060-patched.rom'/>
<address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0' multifunction='on'/>
</hostdev>
{{< /highlight >}}
### VM Networking
**Scripts**
[macvlan.sh](/posts/windows10-kvm/macvlan/)
[macvlan.service](/posts/windows10-kvm/macvlan-service/)
**Virt-Manager Settings**
![Virt-Manager-Networking](/posts/windows10-kvm/images/network.png)
### CPU Settings
{{< highlight xml >}}
<cputune>
<vcpupin vcpu='0' cpuset='2'/>
<vcpupin vcpu='1' cpuset='8'/>
<vcpupin vcpu='2' cpuset='3'/>
<vcpupin vcpu='3' cpuset='9'/>
<vcpupin vcpu='4' cpuset='4'/>
<vcpupin vcpu='5' cpuset='10'/>
<vcpupin vcpu='6' cpuset='5'/>
<vcpupin vcpu='7' cpuset='11'/>
<emulatorpin cpuset='0-1,6-7'/>
</cputune>
{{< /highlight >}}
{{< highlight xml >}}
<cpu mode='host-passthrough' check='none' migratable='off'>
<topology sockets='1' dies='1' cores='4' threads='2'/>
<cache mode='passthrough'/>
<feature policy='require' name='topoext'/>
</cpu>
{{< /highlight >}}
### Sata Passthrough
{{< highlight xml >}}
<disk type='block' device='disk'>
<driver name='qemu' type='raw' cache='none' io='native' discard='unmap'/>
<source dev='/dev/disk/by-id/ata-....'/>
<target dev='sda' bus='sata'/>
<boot order='1'/>
<address type='drive' controller='0' bus='0' target='0' unit='0'/>
</disk>
{{< /highlight >}}
### Virt-Manager Hardware Overview
![Virt-Manager-Overview](/posts/windows10-kvm/images/hardware-overview.png)

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

View File

@@ -0,0 +1,24 @@
+++
title = "Windows 10 KVM Single-GPU Passthrough - macvlan Service"
date = "2020-05-18"
hidden = true
+++
{{< highlight bash >}}
# /etc/systemd/system/macvlan.service
[Unit]
Description=MACVLAN bridge to share a physical network interface with KVM/QEMU hosts.
Documentation=https://www.furorteutonicus.eu/2013/08/04/enabling-host-guest-networking-with-kvm-macvlan-and-macvtap/
After=network-online.target
Wants=network-online.target
Before=libvirt-guests.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/home/phoenix/macvlan/macvlan.sh
[Install]
WantedBy=multi-user.target
{{< /highlight >}}

View File

@@ -0,0 +1,72 @@
+++
title = "Windows 10 KVM Single-GPU Passthrough - macvlan Script"
date = "2020-05-18"
hidden = true
+++
{{< highlight bash >}}
#!/bin/sh
# Last Edited: 2020-05-18
# From: https://www.furorteutonicus.eu/2013/08/04/enabling-host-guest-networking-with-kvm-macvlan-and-macvtap/
# Let host and guests talk to each other over macvlan.
# Configures a macvlan interface on the hypervisor.
# Run this on the hypervisor (e.g. in /etc/rc.local)
# Made for IPv4; need modification for IPv6.
# Meant for a simple network setup with only eth0,
# and a static (manual) ip config.
# Evert Mouw, 2013. Slightly modified in 2020.
HWLINK=enp34s0
MACVLN=macvlan0
TESTHOST=www.google.com
# ------------
# test if interface already exists
# ------------
if ip link show | grep "$MACVLN@$HWLINK" > /dev/null
then
echo "Link $MACVLN already exists on $HWLINK."
exit
fi
# ------------
# wait for network availability
# ------------
while ! ping -q -c 1 $TESTHOST > /dev/null
do
echo "$0: Cannot ping $TESTHOST, waiting another 5 seconds."
sleep 5
done
# ------------
# get network config
# ------------
IP=$(ip address show dev $HWLINK | grep "inet " | awk '{print $2}')
NETWORK=$(ip -o route | grep $HWLINK | grep -v default | awk '{print $1}')
GATEWAY=$(ip -o route | grep default | awk '{print $3}')
# ------------
# setting up $MACVLN interface
# ------------
ip link add $MACVLN link $HWLINK type macvlan mode bridge
ip address add $IP dev $MACVLN
ip link set dev $MACVLN up
# ------------
# routing table
# ------------
# empty routes
ip route flush dev $HWLINK
ip route flush dev $MACVLN
# add routes
ip route add $NETWORK dev $MACVLN metric 0
# add the default gateway
ip route add default via $GATEWAY
{{< /highlight >}}

View File

@@ -0,0 +1,71 @@
<!doctype html>
<html lang="en-us">
<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
<title>404 Page not found // Phoenix&#39;s Personal Blog</title>
<link rel="shortcut icon" href="/favicon.ico" />
<meta charset="utf-8" />
<meta name="generator" content="Hugo 0.83.0" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="author" content="Phoenix" />
<meta name="description" content="" />
<link rel="stylesheet" href="http://localhost:1313/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="404 Page not found"/>
<meta name="twitter:description" content="Land of random projects i do."/>
<meta property="og:title" content="404 Page not found" />
<meta property="og:description" content="Land of random projects i do." />
<meta property="og:type" content="website" />
<meta property="og:url" content="http://localhost:1313/404.html" />
</head>
<body>
<header class="app-header">
<a class="gradient-border" href="http://localhost:1313/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
<h2>Phoenix&#39;s Personal Blog</h2>
<nav class="app-header-menu">
<a class="app-header-menu-item" href="/">Home</a>
-
<a class="app-header-menu-item" href="/tags/">Tags</a>
</nav>
<p>Land of random projects i do.</p>
<div class="app-header-social">
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-github">
<title>Github</title>
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
</svg>
</a>
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-twitter">
<title>Twitter</title>
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
</svg>
</a>
</div>
</header>
<main class="app-container">
<div class="error-404">
<h1 class="error-404-title">O<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-frown">
<title>frown</title>
<circle cx="12" cy="12" r="10"></circle><path d="M16 16s-1.5-2-4-2-4 2-4 2"></path><line x1="9" y1="9" x2="9.01" y2="9"></line><line x1="15" y1="9" x2="15.01" y2="9"></line>
</svg>ps... </h1>
<p>The link you followed may be broken, or the page may have been removed.</p>
<a href="/">Go home <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-arrow-right">
<title>arrow-right</title>
<line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline>
</svg></a>
</div>
</main>
</body>
</html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

View File

@@ -0,0 +1,66 @@
<!doctype html>
<html lang="en-us">
<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
<title>Categories // Phoenix&#39;s Personal Blog</title>
<link rel="shortcut icon" href="/favicon.ico" />
<meta charset="utf-8" />
<meta name="generator" content="Hugo 0.83.0" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="author" content="Phoenix" />
<meta name="description" content="" />
<link rel="stylesheet" href="http://localhost:1313/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Categories"/>
<meta name="twitter:description" content="Land of random projects i do."/>
<meta property="og:title" content="Categories" />
<meta property="og:description" content="Land of random projects i do." />
<meta property="og:type" content="website" />
<meta property="og:url" content="http://localhost:1313/categories/" />
</head>
<body>
<header class="app-header">
<a class="gradient-border" href="http://localhost:1313/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
<h2>Phoenix&#39;s Personal Blog</h2>
<nav class="app-header-menu">
<a class="app-header-menu-item" href="/">Home</a>
-
<a class="app-header-menu-item" href="/tags/">Tags</a>
</nav>
<p>Land of random projects i do.</p>
<div class="app-header-social">
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-github">
<title>Github</title>
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
</svg>
</a>
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-twitter">
<title>Twitter</title>
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
</svg>
</a>
</div>
</header>
<main class="app-container">
<article>
<h1>Categories</h1>
<ul class="tags-list">
</ul>
</article>
</main>
</body>
</html>

View File

@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Categories on Phoenix&#39;s Personal Blog</title>
<link>http://localhost:1313/categories/</link>
<description>Recent content in Categories on Phoenix&#39;s Personal Blog</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language><atom:link href="http://localhost:1313/categories/index.xml" rel="self" type="application/rss+xml" />
</channel>
</rss>

View File

@@ -0,0 +1 @@
*{box-sizing:border-box}html{line-height:1.6}body{margin:0;font-family:sans-serif;background:#353b43;color:#afbac4}h1,h2,h3,h4,h5,h6{color:#fff}a{color:#57cc8a;transition:color .35s;text-decoration:none}a:hover{color:#fff}code{font-family:monospace,monospace;font-size:1em;color:rgba(175,186,196,.8)}pre{font-size:1rem;line-height:1.2em;margin:0;overflow:auto}pre code{font-size:.8em}::selection{background:rgba(175,186,196,.25)}::-moz-selection{background:rgba(175,186,196,.25)}.app-header{padding:2.5em;background:#242930;text-align:center}.app-header-avatar{width:15rem;height:15rem}.app-container{padding:2.5rem}.app-header-social{font-size:2em;color:#fff}.app-header-social a{margin:0 .1em}@media(min-width:940px){.app-header{position:fixed;top:0;left:0;width:20rem;min-height:100vh}.app-container{max-width:65rem;margin-left:20rem}}@media(max-width:940px){h2{font-size:large}.app-container{padding:.5rem}}.error-404{text-align:center}.error-404-title{text-transform:uppercase}.icon{display:inline-block;width:1em;height:1em;vertical-align:-.125em}.pagination{display:block;list-style:none;padding:0;font-size:.8em;text-align:center;margin:3em 0}.page-item{display:inline-block}.page-item .page-link{display:block;padding:.285em .8em}.page-item.active .page-link{color:#fff;border-radius:2em;background:#57cc8a}.post-title{color:#fff}.post-content>pre,.post-content .highlight{margin:1em 0}.post-content>pre,.post-content .highlight>pre,.post-content .highlight>div{border-left:.4em solid rgba(87,204,138,.8);padding:.5em 1em}.post-content img{max-width:100%}.post-meta{font-size:.8em}.posts-list{padding:0}.posts-list-item{list-style:none;padding:.4em 0}.posts-list-item:not(:last-child){border-bottom:1px dashed rgba(255,255,255,.3)}.posts-list-item-description{display:block;font-size:.8em}.tag{display:inline-block;margin-right:.2em;padding:0 .6em;font-size:.9em;border-radius:.2em;white-space:nowrap;background:rgba(255,255,255,.1);transition:color .35s,background .35s}.tag:hover{transition:color .25s,background .05s;background:rgba(255,255,255,.3)}.tags-list{padding:0}.tags-list-item{list-style:none;padding:.4em 0}.tags-list-item:not(:last-child){border-bottom:1px dashed rgba(255,255,255,.3)}@media(min-width:450px){.tags-list{display:flex;flex-wrap:wrap}.tags-list-item{width:calc(50% - 1em)}.tags-list-item:nth-child(even){margin-left:1em}.tags-list-item:nth-last-child(2){border:none}}.gradient-border{margin:auto;--border-width:0.35rem;border-radius:.35rem;position:relative;display:flex;justify-content:center;align-items:center;font-family:Lato,sans-serif;font-size:2.5rem;text-transform:uppercase;color:#fff;background:#222;border-radius:var(--border-width)}.gradient-border::after{position:absolute;content:"";top:calc(-1 * var(--border-width));left:calc(-1 * var(--border-width));z-index:-1;width:calc(100% + var(--border-width) * 2);height:calc(100% + var(--border-width) * 2);background:linear-gradient(60deg,#5f86f2,#a65ff2,#f25fd0,#f25f61,#f2cb5f,#abf25f,#5ff281,#5ff2f0);background-size:300% 300%;background-position:0;border-radius:calc(2 * var(--border-width));animation:moveGradient 4s alternate infinite}@keyframes moveGradient{50%{background-position:100%}}.gradient-border img{margin:auto;width:100%;border-radius:1.5%}

View File

@@ -0,0 +1,87 @@
<!doctype html>
<html lang="en-us">
<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
<title>Phoenix&#39;s Personal Blog</title>
<link rel="shortcut icon" href="/favicon.ico" />
<meta charset="utf-8" />
<meta name="generator" content="Hugo 0.83.0" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="author" content="Phoenix" />
<meta name="description" content="Land of random projects i do." />
<link rel="stylesheet" href="http://localhost:1313/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Phoenix&#39;s Personal Blog"/>
<meta name="twitter:description" content="Land of random projects i do."/>
<meta property="og:title" content="Phoenix&#39;s Personal Blog" />
<meta property="og:description" content="Land of random projects i do." />
<meta property="og:type" content="website" />
<meta property="og:url" content="http://localhost:1313/" />
</head>
<body>
<header class="app-header">
<a class="gradient-border" href="http://localhost:1313/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
<h2>Phoenix&#39;s Personal Blog</h2>
<nav class="app-header-menu">
<a class="app-header-menu-item" href="/">Home</a>
-
<a class="app-header-menu-item" href="/tags/">Tags</a>
</nav>
<p>Land of random projects i do.</p>
<div class="app-header-social">
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-github">
<title>Github</title>
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
</svg>
</a>
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-twitter">
<title>Twitter</title>
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
</svg>
</a>
</div>
</header>
<main class="app-container">
<article>
<h1>Phoenix&#39;s Personal Blog</h1>
<ul class="posts-list">
<li class="posts-list-item">
<a class="posts-list-item-title" href="http://localhost:1313/posts/test/">Test Post</a>
<span class="posts-list-item-description">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-calendar">
<title>calendar</title>
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line>
</svg>
May 18, 2020
-
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-clock">
<title>clock</title>
<circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline>
</svg>
1 min read
</span>
</li>
</ul>
</article>
</main>
</body>
</html>

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Phoenix&#39;s Personal Blog</title>
<link>http://localhost:1313/</link>
<description>Recent content on Phoenix&#39;s Personal Blog</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language>
<lastBuildDate>Mon, 18 May 2020 00:00:00 +0000</lastBuildDate><atom:link href="http://localhost:1313/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Test Post</title>
<link>http://localhost:1313/posts/test/</link>
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
<guid>http://localhost:1313/posts/test/</guid>
<description>This is a test HTML &amp;lt;section id=&amp;#34;main&amp;#34;&amp;gt; &amp;lt;div&amp;gt; &amp;lt;h1 id=&amp;#34;title&amp;#34;&amp;gt;{{ .Title }}&amp;lt;/h1&amp;gt; {{ range .Pages }} {{ .Render &amp;#34;summary&amp;#34;}} {{ end }} &amp;lt;/div&amp;gt; &amp;lt;/section&amp;gt; Golang package main import &amp;#34;fmt&amp;#34; func main() { fmt.Println(&amp;#34;hello world&amp;#34;) } </description>
</item>
</channel>
</rss>

View File

@@ -0,0 +1 @@
<!DOCTYPE html><html><head><title>http://localhost:1313/</title><link rel="canonical" href="http://localhost:1313/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=http://localhost:1313/" /></head></html>

View File

@@ -0,0 +1,87 @@
<!doctype html>
<html lang="en-us">
<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
<title>Posts // Phoenix&#39;s Personal Blog</title>
<link rel="shortcut icon" href="/favicon.ico" />
<meta charset="utf-8" />
<meta name="generator" content="Hugo 0.83.0" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="author" content="Phoenix" />
<meta name="description" content="" />
<link rel="stylesheet" href="http://localhost:1313/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Posts"/>
<meta name="twitter:description" content="Land of random projects i do."/>
<meta property="og:title" content="Posts" />
<meta property="og:description" content="Land of random projects i do." />
<meta property="og:type" content="website" />
<meta property="og:url" content="http://localhost:1313/posts/" />
</head>
<body>
<header class="app-header">
<a class="gradient-border" href="http://localhost:1313/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
<h2>Phoenix&#39;s Personal Blog</h2>
<nav class="app-header-menu">
<a class="app-header-menu-item" href="/">Home</a>
-
<a class="app-header-menu-item" href="/tags/">Tags</a>
</nav>
<p>Land of random projects i do.</p>
<div class="app-header-social">
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-github">
<title>Github</title>
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
</svg>
</a>
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-twitter">
<title>Twitter</title>
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
</svg>
</a>
</div>
</header>
<main class="app-container">
<article>
<h1>Posts</h1>
<ul class="posts-list">
<li class="posts-list-item">
<a class="posts-list-item-title" href="http://localhost:1313/posts/test/">Test Post</a>
<span class="posts-list-item-description">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-calendar">
<title>calendar</title>
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line>
</svg>
May 18, 2020
-
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-clock">
<title>clock</title>
<circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline>
</svg>
1 min read
</span>
</li>
</ul>
</article>
</main>
</body>
</html>

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Posts on Phoenix&#39;s Personal Blog</title>
<link>http://localhost:1313/posts/</link>
<description>Recent content in Posts on Phoenix&#39;s Personal Blog</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language>
<lastBuildDate>Mon, 18 May 2020 00:00:00 +0000</lastBuildDate><atom:link href="http://localhost:1313/posts/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Test Post</title>
<link>http://localhost:1313/posts/test/</link>
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
<guid>http://localhost:1313/posts/test/</guid>
<description>This is a test HTML &amp;lt;section id=&amp;#34;main&amp;#34;&amp;gt; &amp;lt;div&amp;gt; &amp;lt;h1 id=&amp;#34;title&amp;#34;&amp;gt;{{ .Title }}&amp;lt;/h1&amp;gt; {{ range .Pages }} {{ .Render &amp;#34;summary&amp;#34;}} {{ end }} &amp;lt;/div&amp;gt; &amp;lt;/section&amp;gt; Golang package main import &amp;#34;fmt&amp;#34; func main() { fmt.Println(&amp;#34;hello world&amp;#34;) } </description>
</item>
</channel>
</rss>

View File

@@ -0,0 +1 @@
<!DOCTYPE html><html><head><title>http://localhost:1313/posts/</title><link rel="canonical" href="http://localhost:1313/posts/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=http://localhost:1313/posts/" /></head></html>

View File

@@ -0,0 +1,116 @@
<!doctype html>
<html lang="en-us">
<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
<title>Test Post // Phoenix&#39;s Personal Blog</title>
<link rel="shortcut icon" href="/favicon.ico" />
<meta charset="utf-8" />
<meta name="generator" content="Hugo 0.83.0" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="author" content="Phoenix" />
<meta name="description" content="" />
<link rel="stylesheet" href="http://localhost:1313/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Test Post"/>
<meta name="twitter:description" content="This is a test HTML &lt;section id=&#34;main&#34;&gt; &lt;div&gt; &lt;h1 id=&#34;title&#34;&gt;{{ .Title }}&lt;/h1&gt; {{ range .Pages }} {{ .Render &#34;summary&#34;}} {{ end }} &lt;/div&gt; &lt;/section&gt; Golang package main import &#34;fmt&#34; func main() { fmt.Println(&#34;hello world&#34;) } "/>
<meta property="og:title" content="Test Post" />
<meta property="og:description" content="This is a test HTML &lt;section id=&#34;main&#34;&gt; &lt;div&gt; &lt;h1 id=&#34;title&#34;&gt;{{ .Title }}&lt;/h1&gt; {{ range .Pages }} {{ .Render &#34;summary&#34;}} {{ end }} &lt;/div&gt; &lt;/section&gt; Golang package main import &#34;fmt&#34; func main() { fmt.Println(&#34;hello world&#34;) } " />
<meta property="og:type" content="article" />
<meta property="og:url" content="http://localhost:1313/posts/test/" /><meta property="article:section" content="posts" />
<meta property="article:published_time" content="2020-05-18T00:00:00&#43;00:00" />
<meta property="article:modified_time" content="2020-05-18T00:00:00&#43;00:00" />
</head>
<body>
<header class="app-header">
<a class="gradient-border" href="http://localhost:1313/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
<h2>Phoenix&#39;s Personal Blog</h2>
<nav class="app-header-menu">
<a class="app-header-menu-item" href="/">Home</a>
-
<a class="app-header-menu-item" href="/tags/">Tags</a>
</nav>
<p>Land of random projects i do.</p>
<div class="app-header-social">
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-github">
<title>Github</title>
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
</svg>
</a>
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-twitter">
<title>Twitter</title>
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
</svg>
</a>
</div>
</header>
<main class="app-container">
<article class="post">
<header class="post-header">
<h1 class ="post-title">Test Post</h1>
<div class="post-meta">
<div>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-calendar">
<title>calendar</title>
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line>
</svg>
May 18, 2020
</div>
<div>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-clock">
<title>clock</title>
<circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline>
</svg>
1 min read
</div>
<div>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tag">
<title>tag</title>
<path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path><line x1="7" y1="7" x2="7.01" y2="7"></line>
</svg>
<a class="tag" href="http://localhost:1313/tags/development/">development</a>
<a class="tag" href="http://localhost:1313/tags/test/">Test</a>
</div>
</div>
</header>
<div class="post-content">
<h1 id="this-is-a-test">This is a test</h1>
<!-- raw HTML omitted -->
<h4 id="html">HTML</h4>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:1;-o-tab-size:1;tab-size:1"><code class="language-html" data-lang="html">&lt;<span style="color:#ff79c6">section</span> <span style="color:#50fa7b">id</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;main&#34;</span>&gt;
&lt;<span style="color:#ff79c6">div</span>&gt;
&lt;<span style="color:#ff79c6">h1</span> <span style="color:#50fa7b">id</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">&#34;title&#34;</span>&gt;{{ .Title }}&lt;/<span style="color:#ff79c6">h1</span>&gt;
{{ range .Pages }}
{{ .Render &#34;summary&#34;}}
{{ end }}
&lt;/<span style="color:#ff79c6">div</span>&gt;
&lt;/<span style="color:#ff79c6">section</span>&gt;</code></pre></div>
<h4 id="golang">Golang</h4>
<div class="highlight"><pre style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:1;-o-tab-size:1;tab-size:1"><code class="language-go" data-lang="go"><span style="color:#ff79c6">package</span> main
<span style="color:#ff79c6">import</span> <span style="color:#f1fa8c">&#34;fmt&#34;</span>
<span style="color:#8be9fd;font-style:italic">func</span> <span style="color:#50fa7b">main</span>() {
fmt.<span style="color:#50fa7b">Println</span>(<span style="color:#f1fa8c">&#34;hello world&#34;</span>)
}</code></pre></div>
</div>
<div class="post-footer">
</div>
</article>
</main>
</body>
</html>

View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>http://localhost:1313/tags/development/</loc>
<lastmod>2020-05-18T00:00:00+00:00</lastmod>
</url><url>
<loc>http://localhost:1313/</loc>
<lastmod>2020-05-18T00:00:00+00:00</lastmod>
</url><url>
<loc>http://localhost:1313/posts/</loc>
<lastmod>2020-05-18T00:00:00+00:00</lastmod>
</url><url>
<loc>http://localhost:1313/tags/</loc>
<lastmod>2020-05-18T00:00:00+00:00</lastmod>
</url><url>
<loc>http://localhost:1313/tags/test/</loc>
<lastmod>2020-05-18T00:00:00+00:00</lastmod>
</url><url>
<loc>http://localhost:1313/posts/test/</loc>
<lastmod>2020-05-18T00:00:00+00:00</lastmod>
</url><url>
<loc>http://localhost:1313/categories/</loc>
</url>
</urlset>

View File

@@ -0,0 +1,87 @@
<!doctype html>
<html lang="en-us">
<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
<title>development // Phoenix&#39;s Personal Blog</title>
<link rel="shortcut icon" href="/favicon.ico" />
<meta charset="utf-8" />
<meta name="generator" content="Hugo 0.83.0" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="author" content="Phoenix" />
<meta name="description" content="" />
<link rel="stylesheet" href="http://localhost:1313/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="development"/>
<meta name="twitter:description" content="Land of random projects i do."/>
<meta property="og:title" content="development" />
<meta property="og:description" content="Land of random projects i do." />
<meta property="og:type" content="website" />
<meta property="og:url" content="http://localhost:1313/tags/development/" />
</head>
<body>
<header class="app-header">
<a class="gradient-border" href="http://localhost:1313/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
<h2>Phoenix&#39;s Personal Blog</h2>
<nav class="app-header-menu">
<a class="app-header-menu-item" href="/">Home</a>
-
<a class="app-header-menu-item" href="/tags/">Tags</a>
</nav>
<p>Land of random projects i do.</p>
<div class="app-header-social">
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-github">
<title>Github</title>
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
</svg>
</a>
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-twitter">
<title>Twitter</title>
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
</svg>
</a>
</div>
</header>
<main class="app-container">
<article>
<h1>development</h1>
<ul class="posts-list">
<li class="posts-list-item">
<a class="posts-list-item-title" href="http://localhost:1313/posts/test/">Test Post</a>
<span class="posts-list-item-description">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-calendar">
<title>calendar</title>
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line>
</svg>
May 18, 2020
-
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-clock">
<title>clock</title>
<circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline>
</svg>
1 min read
</span>
</li>
</ul>
</article>
</main>
</body>
</html>

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>development on Phoenix&#39;s Personal Blog</title>
<link>http://localhost:1313/tags/development/</link>
<description>Recent content in development on Phoenix&#39;s Personal Blog</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language>
<lastBuildDate>Mon, 18 May 2020 00:00:00 +0000</lastBuildDate><atom:link href="http://localhost:1313/tags/development/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Test Post</title>
<link>http://localhost:1313/posts/test/</link>
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
<guid>http://localhost:1313/posts/test/</guid>
<description>This is a test HTML &amp;lt;section id=&amp;#34;main&amp;#34;&amp;gt; &amp;lt;div&amp;gt; &amp;lt;h1 id=&amp;#34;title&amp;#34;&amp;gt;{{ .Title }}&amp;lt;/h1&amp;gt; {{ range .Pages }} {{ .Render &amp;#34;summary&amp;#34;}} {{ end }} &amp;lt;/div&amp;gt; &amp;lt;/section&amp;gt; Golang package main import &amp;#34;fmt&amp;#34; func main() { fmt.Println(&amp;#34;hello world&amp;#34;) } </description>
</item>
</channel>
</rss>

View File

@@ -0,0 +1 @@
<!DOCTYPE html><html><head><title>http://localhost:1313/tags/development/</title><link rel="canonical" href="http://localhost:1313/tags/development/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=http://localhost:1313/tags/development/" /></head></html>

View File

@@ -0,0 +1,88 @@
<!doctype html>
<html lang="en-us">
<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
<title>Tags // Phoenix&#39;s Personal Blog</title>
<link rel="shortcut icon" href="/favicon.ico" />
<meta charset="utf-8" />
<meta name="generator" content="Hugo 0.83.0" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="author" content="Phoenix" />
<meta name="description" content="" />
<link rel="stylesheet" href="http://localhost:1313/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Tags"/>
<meta name="twitter:description" content="Land of random projects i do."/>
<meta property="og:title" content="Tags" />
<meta property="og:description" content="Land of random projects i do." />
<meta property="og:type" content="website" />
<meta property="og:url" content="http://localhost:1313/tags/" />
</head>
<body>
<header class="app-header">
<a class="gradient-border" href="http://localhost:1313/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
<h2>Phoenix&#39;s Personal Blog</h2>
<nav class="app-header-menu">
<a class="app-header-menu-item" href="/">Home</a>
-
<a class="app-header-menu-item" href="/tags/">Tags</a>
</nav>
<p>Land of random projects i do.</p>
<div class="app-header-social">
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-github">
<title>Github</title>
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
</svg>
</a>
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-twitter">
<title>Twitter</title>
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
</svg>
</a>
</div>
</header>
<main class="app-container">
<article>
<h1>Tags</h1>
<ul class="tags-list">
<li class="tags-list-item">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tag">
<title>tag</title>
<path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path><line x1="7" y1="7" x2="7.01" y2="7"></line>
</svg>
<a class="tags-list-item-title" href="http://localhost:1313/tags/development/">
(1)
development
</a>
</li>
<li class="tags-list-item">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tag">
<title>tag</title>
<path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path><line x1="7" y1="7" x2="7.01" y2="7"></line>
</svg>
<a class="tags-list-item-title" href="http://localhost:1313/tags/test/">
(1)
Test
</a>
</li>
</ul>
</article>
</main>
</body>
</html>

View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Tags on Phoenix&#39;s Personal Blog</title>
<link>http://localhost:1313/tags/</link>
<description>Recent content in Tags on Phoenix&#39;s Personal Blog</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language>
<lastBuildDate>Mon, 18 May 2020 00:00:00 +0000</lastBuildDate><atom:link href="http://localhost:1313/tags/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>development</title>
<link>http://localhost:1313/tags/development/</link>
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
<guid>http://localhost:1313/tags/development/</guid>
<description></description>
</item>
<item>
<title>Test</title>
<link>http://localhost:1313/tags/test/</link>
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
<guid>http://localhost:1313/tags/test/</guid>
<description></description>
</item>
</channel>
</rss>

View File

@@ -0,0 +1,87 @@
<!doctype html>
<html lang="en-us">
<head><script src="/livereload.js?mindelay=10&amp;v=2&amp;port=1313&amp;path=livereload" data-no-instant defer></script>
<title>Test // Phoenix&#39;s Personal Blog</title>
<link rel="shortcut icon" href="/favicon.ico" />
<meta charset="utf-8" />
<meta name="generator" content="Hugo 0.83.0" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="author" content="Phoenix" />
<meta name="description" content="" />
<link rel="stylesheet" href="http://localhost:1313/css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css" />
<meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="Test"/>
<meta name="twitter:description" content="Land of random projects i do."/>
<meta property="og:title" content="Test" />
<meta property="og:description" content="Land of random projects i do." />
<meta property="og:type" content="website" />
<meta property="og:url" content="http://localhost:1313/tags/test/" />
</head>
<body>
<header class="app-header">
<a class="gradient-border" href="http://localhost:1313/"><img class="app-header-avatar" src="/avatar.png" alt="Phoenix" /></a>
<h2>Phoenix&#39;s Personal Blog</h2>
<nav class="app-header-menu">
<a class="app-header-menu-item" href="/">Home</a>
-
<a class="app-header-menu-item" href="/tags/">Tags</a>
</nav>
<p>Land of random projects i do.</p>
<div class="app-header-social">
<a href="https://github.com/HotaruBlaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-github">
<title>Github</title>
<path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path>
</svg>
</a>
<a href="https://twitter.com/hotarublaze" target="_blank" rel="noreferrer noopener">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-twitter">
<title>Twitter</title>
<path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"></path>
</svg>
</a>
</div>
</header>
<main class="app-container">
<article>
<h1>Test</h1>
<ul class="posts-list">
<li class="posts-list-item">
<a class="posts-list-item-title" href="http://localhost:1313/posts/test/">Test Post</a>
<span class="posts-list-item-description">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-calendar">
<title>calendar</title>
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line>
</svg>
May 18, 2020
-
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-clock">
<title>clock</title>
<circle cx="12" cy="12" r="10"></circle><polyline points="12 6 12 12 16 14"></polyline>
</svg>
1 min read
</span>
</li>
</ul>
</article>
</main>
</body>
</html>

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Test on Phoenix&#39;s Personal Blog</title>
<link>http://localhost:1313/tags/test/</link>
<description>Recent content in Test on Phoenix&#39;s Personal Blog</description>
<generator>Hugo -- gohugo.io</generator>
<language>en-us</language>
<lastBuildDate>Mon, 18 May 2020 00:00:00 +0000</lastBuildDate><atom:link href="http://localhost:1313/tags/test/index.xml" rel="self" type="application/rss+xml" />
<item>
<title>Test Post</title>
<link>http://localhost:1313/posts/test/</link>
<pubDate>Mon, 18 May 2020 00:00:00 +0000</pubDate>
<guid>http://localhost:1313/posts/test/</guid>
<description>This is a test HTML &amp;lt;section id=&amp;#34;main&amp;#34;&amp;gt; &amp;lt;div&amp;gt; &amp;lt;h1 id=&amp;#34;title&amp;#34;&amp;gt;{{ .Title }}&amp;lt;/h1&amp;gt; {{ range .Pages }} {{ .Render &amp;#34;summary&amp;#34;}} {{ end }} &amp;lt;/div&amp;gt; &amp;lt;/section&amp;gt; Golang package main import &amp;#34;fmt&amp;#34; func main() { fmt.Println(&amp;#34;hello world&amp;#34;) } </description>
</item>
</channel>
</rss>

View File

@@ -0,0 +1 @@
<!DOCTYPE html><html><head><title>http://localhost:1313/tags/test/</title><link rel="canonical" href="http://localhost:1313/tags/test/"/><meta name="robots" content="noindex"><meta charset="utf-8" /><meta http-equiv="refresh" content="0; url=http://localhost:1313/tags/test/" /></head></html>

12
src/m10c/.editorconfig Normal file
View File

@@ -0,0 +1,12 @@
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
[*.md]
trim_trailing_whitespace = false

2
src/m10c/.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
public/
exampleSite/resources/

21
src/m10c/LICENSE.md Normal file
View File

@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2019 Fabien Casters
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.

93
src/m10c/README.md Normal file
View File

@@ -0,0 +1,93 @@
# m10c theme
![Intro](https://github.com/vaga/hugo-theme-m10c/blob/master/images/cover.png)
A Hugo minimalistic theme for bloggers
Main features:
- Fully responsive
- Twitter Cards, Open Graph, Disqus and Google Analytics supported (see Hugo docs)
- Customizable colors
- Customizable picture and description
- Customizable menu on sidebar
- Customizable social media links on sidebar
- Optimized for performance 100/100 on Lighthouse
- All feather icons included
## Getting started
### Installation
Create a new Hugo site:
```bash
$ hugo new site [path]
```
Clone this repository into `themes/` directory:
```bash
$ cd [path]
$ git clone https://github.com/vaga/hugo-theme-m10c.git themes/m10c
```
Add this line in the `config.toml` file:
```toml
theme = "m10c"
```
### Configuration
In your `config.toml` file, define the following variables in `params`:
- `author`: Name of the author
- `description`: Short description of the author
- `avatar`: Path of file containing the author avatar image
- `menu_item_separator`: Separator between each menu item. HTML allowed (default: " - ")
- `favicon`: Absolute path of your favicon.ico file (default: "/favicon.ico")
To add a menu item, add the following lines in `menu`:
```
[[menu.main]]
identifier = "tags"
name = "Tags"
url = "/tags/"
```
[Read Hugo documentations](https://gohugo.io/content-management/menus/#readout) for more informations about menu
To add a social link, add the following lines in `params`:
```
[[params.social]]
icon = "github"
name = "My Github"
url = "https://github.com/vaga"
```
To change theme colors, add the following lines in `params`:
```
[params.style]
darkestColor = "#d35050"
darkColor = "#212121"
lightColor = "#f5e3e0"
lightestColor = "#f5f5f5"
primaryColor = "#ffffff"
```
If you want the above theme colors, you can see the [exampleSite/config.toml](/exampleSite/config.toml) file.
### Styling
To override styles using scss, add a file called `_extra.scss` to `[path]/assets/css/`
**Note:** Hugo releases come in two versions, `hugo` and `hugo_extended`. You need `hugo_extended` to automatically compile your scss.
## License
This theme is released under the [**MIT**](/LICENSE.md) License.
## Acknowledgements
- [feather](https://feathericons.com/) - [MIT](https://github.com/feathericons/feather/blob/master/LICENSE)

View File

@@ -0,0 +1,59 @@
* {
box-sizing: border-box;
}
html {
line-height: 1.6;
}
body {
margin: 0;
font-family: sans-serif;
background: $dark-color;
color: $light-color;
}
h1, h2, h3, h4, h5, h6 {
color: $lightest-color;
}
a {
color: $primary-color;
transition: color 0.35s;
text-decoration: none;
&:hover {
color: $lightest-color;
}
}
// Browsers seem to use a smaller default font-size with monospaced code
// blocks (like 80% of the size of normal text) and that looks pretty bad with
// small inline code-blocks in the middle of normal text (mainly because of
// the very noticeable difference in x-height). This CSS corrects that problem.
code {
font-family: monospace,monospace;
font-size: 1em;
color: rgba($light-color, .8);
}
pre {
font-size: 1rem;
line-height: 1.2em;
margin: 0;
overflow: auto;
// A larger monospaced block of text (that isn't mixed with normal text)
// generally looks heavier than normal text with the same font size. For this
// reason using a smaller monospaced font size makes sense in this situation.
code {
font-size: .8em;
}
}
::selection {
background: rgba($light-color, .25);
}
::-moz-selection {
background: rgba($light-color, .25);
}

View File

@@ -0,0 +1,2 @@
// Do not add any CSS to this file in the theme sources.
// This file can be overridden to add project-specific CSS.

View File

@@ -0,0 +1,64 @@
.app-header {
padding: 2.5em;
background: $darkest-color;
text-align: center;
}
.app-header-avatar {
width: 15rem;
height: 15rem;
// border-radius: 100%;
// border: 0.5rem solid $primary-color;
}
.app-container {
padding: 2.5rem;
}
.app-header-social {
font-size: 2em;
color: $lightest-color;
a {
margin: 0 0.1em;
}
}
@media (min-width: 940px) {
.app-header {
position: fixed;
top: 0;
left: 0;
width: 20rem;
min-height: 100vh;
}
.app-container {
max-width: 65rem;
margin-left: 20rem;
}
}
@media (max-width: 940px) {
h2 {
font-size: large;
}
// p {
// clear: both;
// text-align: left;
// }
// }
// .app-header-avatar {
// max-width: 8rem;
// max-height: 8rem;
// border-radius: 100%;
// border: .25rem solid $primary-color;
// float: left;
// }
.app-container {
padding: 0.5rem;
}
}

View File

@@ -0,0 +1,57 @@
.gradient-border {
margin: auto;
// width: 50%;
--border-width: 0.35rem;
border-radius: 0.35rem;
position: relative;
display: flex;
justify-content: center;
align-items: center;
font-family: Lato, sans-serif;
font-size: 2.5rem;
text-transform: uppercase;
color: white;
background: #222;
border-radius: var(--border-width);
&::after {
position: absolute;
content: "";
top: calc(-1 * var(--border-width));
left: calc(-1 * var(--border-width));
z-index: -1;
width: calc(100% + var(--border-width) * 2);
height: calc(100% + var(--border-width) * 2);
background: linear-gradient(
60deg,
hsl(224, 85%, 66%),
hsl(269, 85%, 66%),
hsl(314, 85%, 66%),
hsl(359, 85%, 66%),
hsl(44, 85%, 66%),
hsl(89, 85%, 66%),
hsl(134, 85%, 66%),
hsl(179, 85%, 66%)
);
background-size: 300% 300%;
background-position: 0 50%;
border-radius: calc(2 * var(--border-width));
animation: moveGradient 4s alternate infinite;
}
}
@keyframes moveGradient {
50% {
background-position: 100% 50%;
}
}
.gradient-border img {
margin: auto;
width: 100%;
border-radius: 1.5%;
// border-radius: 50%;
}

View File

@@ -0,0 +1,7 @@
.error-404 {
text-align: center;
}
.error-404-title {
text-transform: uppercase;
}

View File

@@ -0,0 +1,6 @@
.icon {
display: inline-block;
width: 1em;
height: 1em;
vertical-align: -0.125em;
}

View File

@@ -0,0 +1,24 @@
.pagination {
display: block;
list-style: none;
padding: 0;
font-size: 0.8em;
text-align: center;
margin: 3em 0;
}
.page-item {
display: inline-block;
.page-link {
display: block;
padding: 0.285em 0.8em;
}
&.active {
.page-link {
color: $lightest-color;
border-radius: 2em;
background: $primary-color;
}
}
}

View File

@@ -0,0 +1,25 @@
.post-title {
color: $lightest-color;
}
.post-content {
& > pre,
.highlight {
margin: 1em 0;
}
& > pre,
.highlight > pre,
.highlight > div {
border-left: 0.4em solid rgba($primary-color, .8);
padding: .5em 1em;
}
img {
max-width: 100%;
}
}
.post-meta {
font-size: 0.8em;
}

View File

@@ -0,0 +1,17 @@
.posts-list {
padding: 0;
}
.posts-list-item {
list-style: none;
padding: 0.4em 0;
&:not(:last-child) {
border-bottom: 1px dashed rgba(255, 255, 255, 0.3);
}
}
.posts-list-item-description {
display: block;
font-size: 0.8em;
}

View File

@@ -0,0 +1,15 @@
.tag {
display: inline-block;
margin-right: 0.2em;
padding: 0 0.6em;
font-size: 0.9em;
border-radius: 0.2em;
white-space: nowrap;
background: rgba(255, 255, 255, 0.1);
transition: color 0.35s, background 0.35s;
&:hover {
transition: color 0.25s, background 0.05s;
background: rgba(255, 255, 255, 0.3);
}
}

View File

@@ -0,0 +1,28 @@
.tags-list {
padding: 0;
}
.tags-list-item {
list-style: none;
padding: 0.4em 0;
&:not(:last-child) {
border-bottom: 1px dashed rgba(255, 255, 255, 0.3);
}
}
@media (min-width: 450px) {
.tags-list {
display: flex;
flex-wrap: wrap;
}
.tags-list-item {
width: calc(50% - 1em);
&:nth-child(even) {
margin-left: 1em;
}
&:nth-last-child(2) {
border: none;
}
}
}

View File

@@ -0,0 +1,22 @@
$darkest-color: {{ .Site.Params.style.darkestColor | default "#242930" }};
$dark-color: {{ .Site.Params.style.darkColor | default "#353b43" }};
$light-color: {{ .Site.Params.style.lightColor | default "#afbac4" }};
$lightest-color: {{ .Site.Params.style.lightestColor | default "#ffffff" }};
$primary-color: {{ .Site.Params.style.primaryColor | default "#57cc8a" }};
@import 'base';
@import 'components/app';
@import 'components/error_404';
@import 'components/icon';
@import 'components/pagination';
@import 'components/post';
@import 'components/posts_list';
@import 'components/tag';
@import 'components/tags_list';
@import 'components/border_animation';
// The last 'extra' import can optionally be overridden on a per project
// basis by creating a <HUGO_PROJECT>/assets/css/_extra.scss file.
@import 'extra';

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,7 @@
{{ define "main" }}
<div class="error-404">
<h1 class="error-404-title">O{{ partial "icon.html" (dict "ctx" $ "name" "frown") }}ps... </h1>
<p>The link you followed may be broken, or the page may have been removed.</p>
<a href="{{ "/" | relURL }}">Go home {{ partial "icon.html" (dict "ctx" $ "name" "arrow-right") }}</a>
</div>
{{ end }}

View File

@@ -0,0 +1,50 @@
<!doctype html>
<html lang="{{ .Site.LanguageCode | default "en-us" }}">
<head>
<title>{{ if .IsHome }}{{ .Site.Title }}{{ else }}{{ .Title }} // {{ .Site.Title }}{{ end }}</title>
<link rel="shortcut icon" href="{{ .Site.Params.favicon | default "/favicon.ico" }}" />
<meta charset="utf-8" />
{{ hugo.Generator }}
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="author" content="{{ .Site.Params.author | default "John Doe" }}" />
<meta name="description" content="{{ if .IsHome }}{{ .Site.Params.description }}{{ else }}{{ .Description }}{{ end }}" />
{{ $style := resources.Get "css/main.scss" | resources.ExecuteAsTemplate "css/main.scss" . | resources.ToCSS | resources.Minify | resources.Fingerprint -}}
<link rel="stylesheet" href="{{ $style.Permalink }}" />
{{ template "_internal/google_analytics.html" . }}
{{ template "_internal/twitter_cards.html" . }}
{{ template "_internal/opengraph.html" . }}
</head>
<body>
<header class="app-header">
<a class="gradient-border" href="{{ .Site.BaseURL }}"><img class="app-header-avatar" src="{{ .Site.Params.avatar | default "avatar.png" | relURL }}" alt="{{ .Site.Params.author | default "John Doe" }}" /></a>
<h2>{{ .Site.Title }}</h2>
{{- with .Site.Menus.main }}
<nav class="app-header-menu">
{{- range $key, $item := . }}
{{- if ne $key 0 }}
{{ $.Site.Params.menu_item_separator | default " - " | safeHTML }}
{{ end }}
<a class="app-header-menu-item" href="{{ $item.URL }}">{{ $item.Name }}</a>
{{- end }}
</nav>
{{- end }}
<p>{{ .Site.Params.description | default "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc vehicula turpis sit amet elit pretium." }}</p>
{{- with .Site.Params.social }}
<div class="app-header-social">
{{ range . }}
<a href="{{ .url }}" target="_blank" rel="noreferrer noopener">
{{ partial "icon.html" (dict "ctx" $ "name" .icon "title" .name) }}
</a>
{{ end }}
</div>
{{- end }}
</header>
<main class="app-container">
{{ block "main" . }}
{{ .Content }}
{{ end }}
</main>
</body>
</html>

View File

@@ -0,0 +1,24 @@
{{ define "main" }}
<article>
<h1>{{ .Title }}</h1>
<ul class="posts-list">
{{ range where .Paginator.Pages "Type" "!=" "page" }}
{{ if not .Params.hidden }}
<li class="posts-list-item">
<a class="posts-list-item-title" href="{{ .Permalink }}">{{ .Title }}</a>
<span class="posts-list-item-description">
{{ partial "icon.html" (dict "ctx" $ "name" "calendar") }}
{{ .PublishDate.Format "Jan 2, 2006" }}
{{ if not .Site.Params.noreadingtime }}
-
{{ partial "icon.html" (dict "ctx" $ "name" "clock") }}
{{ .ReadingTime }} min read
{{ end }}
</span>
{{ end }}
</li>
{{ end }}
</ul>
{{ partial "pagination.html" $ }}
</article>
{{ end }}

View File

@@ -0,0 +1,37 @@
{{ define "main" }}
<article class="post">
<header class="post-header">
<h1 class ="post-title">{{ .Title }}</h1>
{{- if ne .Type "page" }}
<div class="post-meta">
<div>
{{ partial "icon.html" (dict "ctx" $ "name" "calendar") }}
{{ .PublishDate.Format "Jan 2, 2006" }}
</div>
{{ if not .Site.Params.noreadingtime }}
<div>
{{ partial "icon.html" (dict "ctx" $ "name" "clock") }}
{{ .ReadingTime }} min read
</div>
{{ end }}
{{- with .Params.tags }}
<div>
{{ partial "icon.html" (dict "ctx" $ "name" "tag") }}
{{- range . -}}
{{ with $.Site.GetPage (printf "/%s/%s" "tags" . ) }}
<a class="tag" href="{{ .Permalink }}">{{ .Title }}</a>
{{- end }}
{{- end }}
</div>
{{- end }}
</div>
{{- end }}
</header>
<div class="post-content">
{{ .Content }}
</div>
<div class="post-footer">
{{ template "_internal/disqus.html" . }}
</div>
</article>
{{ end }}

View File

@@ -0,0 +1,18 @@
{{ define "main" }}
{{if not .Page.Params.hidden}}
<article>
<h1>{{ .Title }}</h1>
<ul class="tags-list">
{{ range .Data.Terms.ByCount }}
<li class="tags-list-item">
{{ partial "icon.html" (dict "ctx" $ "name" "tag") }}
<a class="tags-list-item-title" href="{{ .Page.Permalink }}">
({{ .Count }})
{{ .Page.Title }}
</a>
</li>
{{ end }}
</ul>
</article>
{{ end }}
{{ end }}

View File

@@ -0,0 +1,11 @@
{{- if isset .ctx.Site.Data.m10c.icons .name -}}
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-{{ .name }}">
<title>{{ .title | default .name }}</title>
{{ safeHTML (index .ctx.Site.Data.m10c.icons .name) }}
</svg>
{{- else -}}
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="icon icon-link">
<path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path>
<path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path>
</svg>
{{- end -}}

View File

@@ -0,0 +1,27 @@
{{ with $.Paginator }}
{{ if gt .TotalPages 1 }}
<ul class="pagination">
{{ with .Prev }}
<li class="page-item">
<a class="page-link" href="{{ .URL }}">
{{ partial "icon.html" (dict "ctx" $ "name" "arrow-left") }}
</a>
</li>
{{ end }}
{{ range .Pagers }}
<li class="page-item{{ if eq .PageNumber $.Paginator.PageNumber }} active{{ end }}">
<a class="page-link" href="{{ .URL }}">
{{ .PageNumber }}
</a>
</li>
{{ end }}
{{ with .Next }}
<li class="page-item">
<a class="page-link" href="{{ .URL }}">
{{ partial "icon.html" (dict "ctx" $ "name" "arrow-right") }}
</a>
</li>
{{ end }}
</ul>
{{ end }}
{{ end }}

View File

@@ -0,0 +1,3 @@
<div class="toc" class="well col-md-4 col-sm-6">
{{ .Page.TableOfContents }}
</div>

View File

@@ -0,0 +1 @@
*{box-sizing:border-box}html{line-height:1.6}body{margin:0;font-family:sans-serif;background:#353b43;color:#afbac4}h1,h2,h3,h4,h5,h6{color:#fff}a{color:#57cc8a;transition:color .35s;text-decoration:none}a:hover{color:#fff}code{font-family:monospace,monospace;font-size:1em;color:rgba(175,186,196,.8)}pre{overflow:auto}pre code{font-size:.8em}::selection{background:rgba(175,186,196,.25)}::-moz-selection{background:rgba(175,186,196,.25)}.app-header{padding:2.5em;background:#242930;text-align:center}.app-header-avatar{max-width:15rem;max-height:15rem;border-radius:100%;border:.5rem solid #57cc8a}.app-container{padding:2.5rem}.app-header-social{font-size:2em;color:#fff}.app-header-social a{margin:0 .1em}@media(min-width:940px){.app-header{position:fixed;top:0;left:0;width:20rem;min-height:100vh}.app-container{max-width:65rem;margin-left:20rem}}.error-404{text-align:center}.error-404-title{text-transform:uppercase}.icon{display:inline-block;width:1em;height:1em;vertical-align:-.125em}.pagination{display:block;list-style:none;padding:0;font-size:.8em;text-align:center;margin:3em 0}.page-item{display:inline-block}.page-item .page-link{display:block;padding:.285em .8em}.page-item.active .page-link{color:#fff;border-radius:2em;background:#57cc8a}.post-title{color:#fff}.post-content pre{border-left:.4em solid rgba(87,204,138,.8);padding-left:1em}.post-content img{max-width:100%}.post-meta{font-size:.8em}.posts-list{padding:0}.posts-list-item{list-style:none;padding:.4em 0}.posts-list-item:not(:last-child){border-bottom:1px dashed rgba(255,255,255,.3)}.posts-list-item-description{display:block;font-size:.8em}.tag{display:inline-block;margin-right:.2em;padding:0 .6em;font-size:.9em;border-radius:.2em;white-space:nowrap;background:rgba(255,255,255,.1);transition:color .35s,background .35s}.tag:hover{transition:color .25s,background .05s;background:rgba(255,255,255,.3)}.tags-list{padding:0}.tags-list-item{list-style:none;padding:.4em 0}.tags-list-item:not(:last-child){border-bottom:1px dashed rgba(255,255,255,.3)}@media(min-width:450px){.tags-list{display:flex;flex-wrap:wrap}.tags-list-item{width:calc(50% - 1em)}.tags-list-item:nth-child(even){margin-left:1em}.tags-list-item:nth-last-child(2){border:none}}

View File

@@ -0,0 +1 @@
{"Target":"css/main.min.88e7083eff65effb7485b6e6f38d10afbec25093a6fac42d734ce9024d3defbd.css","MediaType":"text/css","Data":{"Integrity":"sha256-iOcIPv9l7/t0hbbm840Qr77CUJOm+sQtc0zpAk09770="}}

View File

@@ -0,0 +1,24 @@
#!/bin/sh
FEATHER_PATH=`dirname "$0"`/feather
# Clone feather repository
git clone --depth=1 git@github.com:feathericons/feather.git $FEATHER_PATH
pushd $FEATHER_PATH
# Install dependencies
yarn
mkdir dist
# Generate icons.json
npx babel-node bin/build-icons-json.js
# Copy icons.json into theme data
cp dist/icons.json ../../data/m10c/icons.json
popd
# Remove the repository
rm -rf $FEATHER_PATH

BIN
src/m10c/static/avatar.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

17
src/m10c/theme.toml Normal file
View File

@@ -0,0 +1,17 @@
name = "m10c"
license = "MIT"
licenselink = "https://github.com/vaga/hugo-theme-m10c/blob/master/LICENSE.md"
description = "A minimalistic (m10c) theme for bloggers"
homepage = "https://"
tags = ["blog","personal","blog", "dark"]
features = [
"minimalistic blog",
"social icons",
"editable colors"
]
min_version = 0.55
[author]
name = "vaga"
homepage = "https://vaga.io"

View File

@@ -0,0 +1 @@
*{box-sizing:border-box}html{line-height:1.6}body{margin:0;font-family:sans-serif;background:#353b43;color:#afbac4}h1,h2,h3,h4,h5,h6{color:#fff}a{color:#57cc8a;transition:color .35s;text-decoration:none}a:hover{color:#fff}code{font-family:monospace,monospace;font-size:1em;color:rgba(175,186,196,.8)}pre{font-size:1rem;line-height:1.2em;margin:0;overflow:auto}pre code{font-size:.8em}::selection{background:rgba(175,186,196,.25)}::-moz-selection{background:rgba(175,186,196,.25)}.app-header{padding:2.5em;background:#242930;text-align:center}.app-header-avatar{width:15rem;height:15rem}.app-container{padding:2.5rem}.app-header-social{font-size:2em;color:#fff}.app-header-social a{margin:0 .1em}@media(min-width:940px){.app-header{position:fixed;top:0;left:0;width:20rem;min-height:100vh}.app-container{max-width:65rem;margin-left:20rem}}@media(max-width:940px){h2{font-size:large}.app-container{padding:.5rem}}.error-404{text-align:center}.error-404-title{text-transform:uppercase}.icon{display:inline-block;width:1em;height:1em;vertical-align:-.125em}.pagination{display:block;list-style:none;padding:0;font-size:.8em;text-align:center;margin:3em 0}.page-item{display:inline-block}.page-item .page-link{display:block;padding:.285em .8em}.page-item.active .page-link{color:#fff;border-radius:2em;background:#57cc8a}.post-title{color:#fff}.post-content>pre,.post-content .highlight{margin:1em 0}.post-content>pre,.post-content .highlight>pre,.post-content .highlight>div{border-left:.4em solid rgba(87,204,138,.8);padding:.5em 1em}.post-content img{max-width:100%}.post-meta{font-size:.8em}.posts-list{padding:0}.posts-list-item{list-style:none;padding:.4em 0}.posts-list-item:not(:last-child){border-bottom:1px dashed rgba(255,255,255,.3)}.posts-list-item-description{display:block;font-size:.8em}.tag{display:inline-block;margin-right:.2em;padding:0 .6em;font-size:.9em;border-radius:.2em;white-space:nowrap;background:rgba(255,255,255,.1);transition:color .35s,background .35s}.tag:hover{transition:color .25s,background .05s;background:rgba(255,255,255,.3)}.tags-list{padding:0}.tags-list-item{list-style:none;padding:.4em 0}.tags-list-item:not(:last-child){border-bottom:1px dashed rgba(255,255,255,.3)}@media(min-width:450px){.tags-list{display:flex;flex-wrap:wrap}.tags-list-item{width:calc(50% - 1em)}.tags-list-item:nth-child(even){margin-left:1em}.tags-list-item:nth-last-child(2){border:none}}.gradient-border{margin:auto;--border-width:0.35rem;border-radius:.35rem;position:relative;display:flex;justify-content:center;align-items:center;font-family:Lato,sans-serif;font-size:2.5rem;text-transform:uppercase;color:#fff;background:#222;border-radius:var(--border-width)}.gradient-border::after{position:absolute;content:"";top:calc(-1 * var(--border-width));left:calc(-1 * var(--border-width));z-index:-1;width:calc(100% + var(--border-width) * 2);height:calc(100% + var(--border-width) * 2);background:linear-gradient(60deg,#5f86f2,#a65ff2,#f25fd0,#f25f61,#f2cb5f,#abf25f,#5ff281,#5ff2f0);background-size:300% 300%;background-position:0;border-radius:calc(2 * var(--border-width));animation:moveGradient 4s alternate infinite}@keyframes moveGradient{50%{background-position:100%}}.gradient-border img{margin:auto;width:100%;border-radius:1.5%}

View File

@@ -0,0 +1 @@
{"Target":"css/main.min.4c70cb4897ba15d2c09f9dabed6b26b751f0638d2a16a28ec38cfcde2ffc4de6.css","MediaType":"text/css","Data":{"Integrity":"sha256-THDLSJe6FdLAn52r7Wsmt1HwY40qFqKOw4z83i/8TeY="}}