Update content
Signed-off-by: Tommy <contact@tommytran.io>
23
.devcontainer/devcontainer.json
Normal file
@ -0,0 +1,23 @@
|
||||
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
|
||||
// README at: https://github.com/devcontainers/templates/tree/main/src/ubuntu
|
||||
{
|
||||
"name": "Ubuntu-Hugo",
|
||||
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
|
||||
"image": "mcr.microsoft.com/devcontainers/base:jammy",
|
||||
"forwardPorts": [1313],
|
||||
"features": {
|
||||
"ghcr.io/devcontainers/features/hugo:1": {
|
||||
"extended": true,
|
||||
"version": "0.119.0"
|
||||
}
|
||||
}
|
||||
|
||||
// Use 'postCreateCommand' to run commands after the container is created.
|
||||
// "postCreateCommand": "uname -a",
|
||||
|
||||
// Configure tool-specific properties.
|
||||
// "customizations": {},
|
||||
|
||||
// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
|
||||
// "remoteUser": "root"
|
||||
}
|
8
.github/dependabot.yml
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: gitsubmodule
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: daily
|
||||
labels:
|
||||
- "dependency"
|
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
|
||||
*.lock
|
14
cloudflare-build.sh
Normal file
@ -0,0 +1,14 @@
|
||||
#!/bin/bash
|
||||
|
||||
#curl -L -s https://api.github.com/repos/gohugoio/hugo/releases/latest | grep "browser_download_url.*extended.*linux-amd64.tar.gz" | cut -d : -f 2,3 | sed 's/"//g' | xargs wget
|
||||
|
||||
wget https://github.com/gohugoio/hugo/releases/download/v0.119.0/hugo_0.119.0_Linux-64bit.tar.gz
|
||||
|
||||
tar xvf ./*.tar.gz
|
||||
chmod u+x ./hugo
|
||||
|
||||
if [ "$CF_PAGES_BRANCH" == "main" ]; then
|
||||
./hugo --minify
|
||||
else
|
||||
./hugo -b "$CF_PAGES_URL"
|
||||
fi
|
40
config.yml
@ -1,9 +1,9 @@
|
||||
baseURL: "https://tommytran.io"
|
||||
title: Tommy Tran
|
||||
title: Tommy Tran - System Administrator and Technical Writer
|
||||
theme: WonderMod
|
||||
copyright: '©Thien Tran 2021-2022'
|
||||
copyright: '©Thien Tran 2021-2023'
|
||||
enableRobotsTXT: true
|
||||
#enableGitInfo: true
|
||||
enableGitInfo: true
|
||||
|
||||
minify:
|
||||
disableXML: true
|
||||
@ -29,35 +29,37 @@ params:
|
||||
assets:
|
||||
disableHLJS: true
|
||||
disableFingerprinting: false
|
||||
favicon: "/favicon/favicon.ico"
|
||||
favicon16x16: "/favicon/favicon-16x16.png"
|
||||
favicon32x32: "/favicon/favicon-32x32.png"
|
||||
apple_touch_icon: "/favicon/apple-touch-icon.png"
|
||||
safari_pinned_tab: "/favicon/safari-pinned-tab.svg"
|
||||
favicon: "/favicon.ico"
|
||||
favicon16x16: "/favicon-16x16.png"
|
||||
favicon32x32: "/favicon-32x32.png"
|
||||
apple_touch_icon: "/apple-touch-icon.png"
|
||||
safari_pinned_tab: "/safari-pinned-tab.svg"
|
||||
|
||||
label:
|
||||
text: "TommyTran.io"
|
||||
text: "Tommy Tran"
|
||||
icon: "/cortana.png"
|
||||
|
||||
# profile-mode
|
||||
profileMode:
|
||||
enabled: true # needs to be explicitly set
|
||||
title: Tommy Tran
|
||||
subtitle: "System Administrator and Technical Writer"
|
||||
imageUrl: "/cortana.png"
|
||||
buttons:
|
||||
- name: About
|
||||
url: about
|
||||
- name: Contact
|
||||
url: contact
|
||||
- name: PGP Key
|
||||
url: gpg.asc
|
||||
|
||||
socialIcons:
|
||||
- name: github
|
||||
url: "https://github.com/tommytran732"
|
||||
- name: gitea
|
||||
url: "https://git.tommytran.io/tomster"
|
||||
url: "https://git.tommytran.io/Tomster"
|
||||
- name: matrix
|
||||
url: "https://matrix.to/#/@tommy:arcticfoxes.net"
|
||||
url: "https://invite.arcticfoxes.net/#/@tommy:arcticfoxes.net"
|
||||
- name: telegram
|
||||
url: "https://t.me/tommytran732"
|
||||
- name: twitter
|
||||
url: "https://twitter.com/tommytran732"
|
||||
- name: email
|
||||
@ -110,13 +112,13 @@ menu:
|
||||
name: Projects
|
||||
url: /projects/
|
||||
weight: 20
|
||||
- identifier: Services
|
||||
name: Services
|
||||
url: /services/
|
||||
- identifier: Packages
|
||||
name: Packages
|
||||
url: /packages/
|
||||
weight: 30
|
||||
- identifier: Hire Me!
|
||||
name: Hire Me!
|
||||
url: /hire-me/
|
||||
- identifier: PGP
|
||||
name: PGP
|
||||
url: tommy.asc
|
||||
weight: 40
|
||||
|
||||
privacy:
|
||||
|
@ -7,8 +7,8 @@ date: 2022-09-02
|
||||
|
||||
Hey there 👋
|
||||
|
||||
My name is Thien, but I mostly go by "Tommy" nowadays. I am an enthusiastic Linux system administrator around 4 years of experience. I am familiar with most major Linux families, from Red Hat to Debian to SUSE to Arch Linux. Recently, my interest has shifted to immutable distributions such as Fedora Silverblue/CoreOS and openSUSE MicroOS.
|
||||
My name is Thien, but I mostly go by "Tommy" nowadays. I am an Linux system administrator around 4 years of experience. I am familiar with most major Linux families, from Red Hat to Debian to SUSE to Arch Linux. Recently, my interest has shifted to immutable distributions such as Fedora Silverblue/CoreOS and openSUSE MicroOS.
|
||||
|
||||
Like most Linux users, I am an open source enthusiast and publish most of the projects made in my free time on [GitHub](https://github.com/tommytran732) and [my own Gitea instance](https://git.tommytran.io/tomster). I also made a couple of small contributions to various projets on GitHub as well.
|
||||
|
||||
If you are active in the privacy communities on Matrix, you may recognize me. I used to be a collaborator for [PrivacyGuides.org](https://privacyguides.org) and wrote a large portion of the site from around October 2021 - July 2022. Now, I am now working on my own website - [PrivSec.dev](https://privsec.dev) - with a couple of friends I "met" through [GrapheneOS](https://grapheneos.org). Oh, while we are on this topic, I am also a moderator in the official GrapheneOS channels as well (though not a developer or project member). Or, you may just know me as that one guy who loves throwing a hypervisor at every problem he encounters, typical of a Qubes OS user.
|
||||
If you are active in the privacy communities on Matrix, you may recognize me. I used to be a collaborator for [PrivacyGuides.org](https://privacyguides.org) and wrote a large portion of the site from around October 2021 - July 2022. Now, I am now working on my own website - [PrivSec.dev](https://privsec.dev) - with a couple of friends I "met" through [GrapheneOS](https://grapheneos.org). Oh, while we are on this topic, I am also a moderator in the official GrapheneOS channels as well (though not a developer or project member). Or, you may just know me as that one guy who loves throwing a hypervisor at every problem he encounters, typical of a Qubes OS user.
|
||||
|
@ -5,13 +5,50 @@ date: 2022-09-02
|
||||
|
||||
![Matrix](/images/matrix.jpg)
|
||||
|
||||
I highly recommend that you contact me via Matrix, so we could take advantage of their end to end encryption. My Matrix is [@tommy:arcticfoxes.net](https://matrix.to/#/@tommy:arcticfoxes.net).
|
||||
## Matrix
|
||||
|
||||
In case you do not have a Matrix account, you can sign up for one on my homeserver [arcticfoxes.net](https://arcticfoxes.net) or on [matrix.org](https://app.element.io). Alternatively, check out [joinmatrix.org](https://joinmatrix.org/servers/) for a list of public homeservers. I do not ask for your email address or any personal information for registration on [arcticfoxes.net](https://arcticfoxes.net). All you need to provide is a username and password.
|
||||
The best way to contact me is through Matrix. My account is [@tommy:arcticfoxes.net](https://invite.arcticfoxes.net/#/@tommy:arcticfoxes.net). If you do not have a an account, you can sign up for one on my homeserver [arcticfoxes.net](https://arcticfoxes.net). I do not ask for your email address or any personal information for registration.
|
||||
|
||||
If you prefer to reach out to me via email, my address is contact@tommytran.io. You can use my GPG Key to encrypt the messages. Aliases:
|
||||
## SimpleX Chat
|
||||
|
||||
- tommy@privsec.dev
|
||||
- tommy@arcticfoxes.net
|
||||
My SimpleX Chat address is `https://simplex.chat/contact#/?v=1-4&smp=smp%3A%2F%2FN_McQS3F9TGoh4ER0QstUf55kGnNSd-wXfNPZ7HukcM%3D%40smp19.simplex.im%2F03zrijd3pM0hi2AG6XLiMMpxEsjEqj_5%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAx3xSpEh_hRUiGatqlRxGajqIcg6H6xc9jf-2UfeJGA4%253D%26srv%3Di53bbtoqhlc365k6kxzwdp5w3cdt433s7bwh3y32rcbml2vztiyyz5id.onion`
|
||||
|
||||
Please by wary of anyone claiming to be me or using the handle "TommyTran732" reaching out to you. Chances are, they are an impersonator. You can always contact me via Matrix or Email for identity verification.
|
||||
You can scan the QR code here:
|
||||
|
||||
![SimpleX Chat](/images/simplex-chat-address.png)
|
||||
|
||||
## Telegram
|
||||
|
||||
My Telegram is [TommyTran732](https://t.me/tommytran732). I do not check it as often as I do with Matrix. When contacting me, please use the [Secret Chat](https://telegram.org/faq#q-how-do-i-start-a-secret-chat) feature.
|
||||
|
||||
## Email
|
||||
|
||||
If you prefer to reach out to me via email, my address is [contact@tommytran.io](mailto:contact@tommytran.io). I do not use PGP for emails. Aliases:
|
||||
|
||||
- [tommy@privsec.dev](mailto:tommy@privsec.dev)
|
||||
- [tommy@arcticfoxes.net](mailto:tommy@arcticfoxes.net)
|
||||
|
||||
## Other Accounts
|
||||
|
||||
Discord:
|
||||
- TommyTran732
|
||||
|
||||
Twitter:
|
||||
|
||||
- [@TommyTran732](https://twitter.com/tommytran732)
|
||||
- [@PrivSec_Dev](https://twitter.com/privsec_dev)
|
||||
|
||||
Reddit:
|
||||
- [PrivSec_Dev](https://www.reddit.com/user/privsec_dev)
|
||||
|
||||
My Git accounts:
|
||||
- [GitHub](https://github.com/tommytran732)
|
||||
- [GitLab](https://gitlab.com/tommytran732) (inactive)
|
||||
- [Gitea](https://git.tommytran.io/tomster)
|
||||
|
||||
Packaging:
|
||||
- [AUR](https://aur.archlinux.org/account/TommyTran732) (login required)
|
||||
- [Docker Hub](https://hub.docker.com/u/tommytran732) (inactive)
|
||||
- [Quay.io](https://quay.io/tommytran732)
|
||||
|
||||
Please by wary of anyone claiming to be me or using the handle "TommyTran732" reaching out to you. Chances are, they are an impersonator. You can always contact me via Matrix or Email for identity verification.
|
||||
|
@ -1,17 +0,0 @@
|
||||
---
|
||||
title: "Hire Me"
|
||||
date: 2022-09-02
|
||||
---
|
||||
|
||||
![rchsa](/images/rhcsa.png)
|
||||
|
||||
I am graduating in a few months and I am looking for a full-time sysadmin job. If you are interested in hiring me, please send me an email at contact@tommytran.io.
|
||||
|
||||
I will not be posting my full resume here for privacy reasons, but here are the the certifications I have gotten so far:
|
||||
|
||||
- **Red Hat Certified System Administrator** | ID: 200-058-41
|
||||
- **Linux Foundation Certified System Administrator** | ID: LFCS-2000-002661-01
|
||||
- **SUSE Certified Administrator for SUSE Linux Enterprise 15** | ID: 2107 (2021-04-24)
|
||||
- **CompTIA Linux+** (QYRCZ8BM0HE11LK)
|
||||
- **CompTIA ITF+** (MJ29K56PQC44QWWG)
|
||||
- **Linux Professional Institute Linux Essentials** (ju2ycbghb9)
|
23
content/packages.md
Normal file
@ -0,0 +1,23 @@
|
||||
---
|
||||
title: "Packages"
|
||||
date: 2022-09-03
|
||||
---
|
||||
|
||||
## Synapse
|
||||
![Matrix](/images/matrix.jpg)
|
||||
|
||||
I have a [simple fork](https://github.com/tommytran732/Synapse-Docker) of [Wonderfall's hardened Synapse Docker image](https://github.com/Wonderfall/docker-synapse) with the [Mjolnir module](https://github.com/matrix-org/mjolnir/blob/main/docs/synapse_module.md) support and the default (as opposed to light) variant of the [Hardened Memory Allocator](https://github.com/GrapheneOS/hardened_malloc).
|
||||
|
||||
You can obtain the image by pulling `ghcr.io/tommytran732/synapse` or `quay.io/tommytran732/synapse`.
|
||||
|
||||
## Matrix.to
|
||||
|
||||
I made an Alpine Docker container for [Matrix.to](https://matrix.to) that you obtain by pulling `ghcr.io/tommytran732/matrix.to`. The default instance has been changed from [Element.io](https://app.element.io) to [ArcticFoxes.net](https://element.arcticfoxes.net).
|
||||
|
||||
## pamac-flatpak AUR
|
||||
|
||||
![pamac](/images/pamac.png)
|
||||
|
||||
I maintain the [`pamac-flatpak`](https://aur.archlinux.org/packages/pamac-flatpak), [`pamac-flatpak-gnome`](https://aur.archlinux.org/packages/pamac-flatpak-gnome), and [`libpamac-flatpak`](https://aur.archlinux.org/packages/libpamac-flatpak) AUR packages. Originally, they were forks of [`pacmac-all`](https://aur.archlinux.org/packages/pamac-all) and [`libpamac-all`](https://aur.archlinux.org/packages/libpamac-nosnap) with snapd removed. I found snapd to be quite annoying - it is yet another AUR package I don't need, requires `cgroupsv1` for confinement, does not integrate with `gnome-software`, makes lots of loopback mounts, and so on.
|
||||
|
||||
Nowadays, they are based on the [`pamac-nosnap`](https://aur.archlinux.org/packages?O=0&K=pamac-nosnap) package with some minor changes to make the build and installation process nicer and more convenient.
|
@ -11,6 +11,18 @@ date: 2022-09-02
|
||||
|
||||
We focus on in-depth system configuration, security analysis, and software/hardware recommendations. Our site is based on technical merits, not ideologies and politics.
|
||||
|
||||
## ArcticFoxes.net
|
||||
|
||||
![ArcticFoxes.net](/images/arcticfoxes.png)
|
||||
|
||||
[ArcticFoxes.net](https://arcticfoxes.net) is a group of self hosted and federated services run by me. It consists of:
|
||||
|
||||
- [A Matrix server](https://matrix.arcticfoxes.net) using my [hardened docker image](https://github.com/tommytran732/Synapse-Docker). I also have a [web client](https://element.arcticfoxes.net) and TURN server as accessories for the Matrix server.
|
||||
- [A Nitter instance](https://nitter.arcticfoxes.net)
|
||||
- [A OpenVPN to ONC converter](onc.arcticfoxes.net). This is a simpel fork of [thomkeh/ovpn2onc](https://github.com/thomkeh/ovpn2onc) with a dark theme.
|
||||
|
||||
Most of the configurations and deployment files are available on [GitHub](https://github.com/ArcticFoxes-net).
|
||||
|
||||
## Pterodactyl Script
|
||||
|
||||
![Pterodactyl](/images/pterodactyl.png)
|
||||
@ -21,6 +33,16 @@ The [Pterodactyl Script](https://github.com/tommytran732/Pterodactyl-Script) is
|
||||
|
||||
![Arch Linux](/images/archlinux.jpg)
|
||||
|
||||
The Arch Setup Script is a script that I wrote to automate my Arch Linux installation which mimics openSUSE's setup with BTRFS and Snapper. At the time, there was no other installer that does this nicely because they all use the same flat layout as recommended in the Arch Wiki. The downside of using this layout is that snapper rollback does not work properly and the user has to get into the Arch ISO to manually rollback their system. This could be solved by using the openSUSE's layout for BTRFS, and I forked Easy Arch to do just that.
|
||||
The Arch Setup Script is a script that I wrote to automate my Arch Linux installation which mimics openSUSE's setup with BTRFS and Snapper. At the time, there was no other installer that does this nicely because they all use the same flat layout as recommended in the Arch Wiki. The downside of using this layout is that snapper rollback does not work properly and the user has to get into the Arch ISO to manually rollback their system. This could be solved by using the openSUSE's layout for BTRFS, and I forked Easy Arch to do just that.
|
||||
|
||||
Over time, I have been adding more security/privacy related settings by default (such as randomized MAC address, IPv6 Privacy, Apparmor, Kernel module blacklist, encrypted /boot). The project is still actively developed, and many of the changes I made are merged upstream as well.
|
||||
Over time, I have been adding more security/privacy related settings by default (such as randomized MAC address, IPv6 Privacy, Apparmor, Kernel module blacklist, encrypted /boot). The project is still actively developed, and many of the changes I made are merged upstream as well.
|
||||
|
||||
## Fedora CoreOS Ignition Files
|
||||
|
||||
![Fedora CoreOS](/images/fedora-coreos.png)
|
||||
|
||||
These are sample [Butane/Ingition configuration files](https://github.com/tommytran732/Fedora-CoreOS-Ignition) that you can adapt to quickly deploy a Fedora CoreOS server with the containers of your choice.
|
||||
|
||||
Out of the box, you will have a set of hardened boot parameters, sysctl settings, along with a set of kernel module blacklist from Whonix's [security-misc](https://github.com/Kicksecure/security-misc/blob/master/etc/modprobe.d/30_security-misc.conf). The configurations will also give you a basic setup with Firewalld, Fail2ban, seboolean, and NTS to tighten down security.
|
||||
|
||||
I use these same configurations on my production servers.
|
||||
|
@ -1,14 +0,0 @@
|
||||
---
|
||||
title: "Services"
|
||||
date: 2022-09-02
|
||||
---
|
||||
|
||||
![ArcticFoxes](/images/arcticfoxes.png)
|
||||
|
||||
I run some public services that you could use:
|
||||
|
||||
- [ArcticFoxes.net](https://arcticfoxes.net), a small Matrix homeserver for cool nerds to hang around. Registration is open.
|
||||
|
||||
- My own [Gitea instance](https://git.tommytran.io). It currently is a mirror of my public repositories and a few other projects that I find interesting. Registration is closed.
|
||||
|
||||
I am quite busy right now, but I am looking at deploying Mastodon and PrivateBin in the near future. When the Gitea federation comes to fruition, I will consider converting my private Gitea instance into a public one under [ArcticFoxes.net](https://arcticfoxes.net) as well.
|
33
netlify.toml
@ -1,33 +0,0 @@
|
||||
[build.environment]
|
||||
HUGO_VERSION = "0.102.2"
|
||||
|
||||
[context.deploy-preview]
|
||||
command = "hugo -b $DEPLOY_PRIME_URL"
|
||||
|
||||
[[plugins]]
|
||||
package = "netlify-plugin-checklinks"
|
||||
|
||||
[plugins.inputs]
|
||||
# An array of glob patterns for pages on your site
|
||||
# Recursive traversal will start from these
|
||||
entryPoints = [
|
||||
"*.html",
|
||||
]
|
||||
|
||||
# Recurse through all the links and asset references on your page, starting
|
||||
# at the entrypoints
|
||||
recursive = true
|
||||
|
||||
# Checklinks outputs TAP (https://testanything.org/tap-version-13-specification.html)
|
||||
# by default. Enabling pretty mode makes the output easier on the eyes.
|
||||
pretty = true
|
||||
|
||||
# You can mark some check as skipped, which will block checklinks
|
||||
# from ever attempting to execute them.
|
||||
# skipPatterns is an array of strings you can match against failing reports
|
||||
skipPatterns = [
|
||||
"public/index.html",
|
||||
"public/about/index.html",
|
||||
"public/contact/index.html",
|
||||
"public/404.html",
|
||||
]
|
16
static/.well-known/security.txt
Normal file
@ -0,0 +1,16 @@
|
||||
-----BEGIN PGP SIGNED MESSAGE-----
|
||||
Hash: SHA256
|
||||
|
||||
Contact: https://matrix.to/#/@tommy:arcticfoxes.net
|
||||
Contact: https://simplex.chat/contact#/?v=1-4&smp=smp%3A%2F%2FN_McQS3F9TGoh4ER0QstUf55kGnNSd-wXfNPZ7HukcM%3D%40smp19.simplex.im%2F03zrijd3pM0hi2AG6XLiMMpxEsjEqj_5%23%2F%3Fv%3D1-2%26dh%3DMCowBQYDK2VuAyEAx3xSpEh_hRUiGatqlRxGajqIcg6H6xc9jf-2UfeJGA4%253D%26srv%3Di53bbtoqhlc365k6kxzwdp5w3cdt433s7bwh3y32rcbml2vztiyyz5id.onion
|
||||
Contact: mailto:contact@tommytran.io
|
||||
Expires: 2024-11-05T00:00:00.000Z
|
||||
Preferred-Languages: en-US, vi-VN
|
||||
Canonical: https://tommytran.io/security.txt
|
||||
-----BEGIN PGP SIGNATURE-----
|
||||
|
||||
iHUEARYIAB0WIQT2xV5SweW8phRp+2fTDewmjT/rFwUCZUdsbQAKCRDTDewmjT/r
|
||||
F/p+AQCX8BhWbTttVGZ8J7AAda7VBQEX06dowEHKCInIy65k9gEA8Q7zpP0gOb7h
|
||||
JT39PRZj+cHFX7u9aYTABEmk1EwNogA=
|
||||
=nxMV
|
||||
-----END PGP SIGNATURE-----
|
@ -1,14 +1,23 @@
|
||||
/*
|
||||
Strict-Transport-Security : max-age=63072000; includeSubDomains; preload
|
||||
Content-Security-Policy : default-src 'none'; connect-src 'self'; img-src 'self'; script-src 'self'; style-src 'self'; frame-src https://www.youtube-nocookie.com; form-action 'none'; frame-ancestors 'none'; block-all-mixed-content; base-uri 'none'
|
||||
Content-Security-Policy : default-src 'none'; connect-src 'self'; img-src 'self'; script-src 'self'; style-src 'self'; form-action 'none'; frame-ancestors 'none'; upgrade-insecure-requests; block-all-mixed-content; base-uri 'none'
|
||||
X-Content-Type-Options : nosniff
|
||||
Referrer-Policy : no-referrer
|
||||
# Cross-Origin-Opener-Policy : same-origin
|
||||
X-Frame-Options : DENY
|
||||
X-XSS-Protection : 0
|
||||
Permissions-Policy : accelerometer=(), ambient-light-sensor=(), autoplay=(), battery=(), camera=(), clipboard-read=(), display-capture=(), document-domain=(), encrypted-media=(), fullscreen=(), geolocation=(), gyroscope=(), hid=(), idle-detection=(), interest-cohort=(), magnetometer=(), microphone=(), midi=(), payment=(), picture-in-picture=(), publickey-credentials-get=(), screen-wake-lock=(), serial=(), usb=(), sync-xhr=(), xr-spatial-tracking=()
|
||||
Cross-Origin-Resource-Policy : same-origin
|
||||
Expect-CT: enforce, max-age=63072000
|
||||
Cross-Origin-Embedder-Policy : require-corp
|
||||
# Cross-Origin-Opener-Policy : same-origin
|
||||
|
||||
/*.xml
|
||||
Content-Security-Policy : default-src 'none'; img-src 'self' data: https://www.w3.org/; style-src 'self' 'unsafe-inline'; block-all-mixed-content; base-uri 'none'
|
||||
Content-Security-Policy : default-src 'none'; img-src 'self' data: https://www.w3.org/; style-src 'self' 'unsafe-inline'; upgrade-insecure-requests; block-all-mixed-content; base-uri 'none'
|
||||
|
||||
/*.png
|
||||
Cross-Origin-Resource-Policy : cross-origin
|
||||
|
||||
/*.jpg
|
||||
Cross-Origin-Resource-Policy : cross-origin
|
||||
|
||||
/.well-known/openpgpkey/hu/*
|
||||
Access-Control-Allow-Origin: *
|
||||
|
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 51 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
101
static/gpg.asc
@ -1,101 +0,0 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
RfEUGQb7FolM
|
||||
=DBNe
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
BIN
static/images/fedora-coreos.png
Normal file
After Width: | Height: | Size: 112 KiB |
BIN
static/images/pamac.png
Normal file
After Width: | Height: | Size: 141 KiB |
BIN
static/images/simplex-chat-address.png
Normal file
After Width: | Height: | Size: 69 KiB |
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
1
static/sshkey
Normal file
@ -0,0 +1 @@
|
||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINkTKkJS7Id1WCyA5Klu/moLG9mP5hTC+v2qYqypMF1u contact@tommytran.io
|
@ -1,2 +0,0 @@
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDbVNnQVs6SVW1GvQQ7FE6afs08LMtTNmDIPtoT3+Aqa7I3HOZRgWpqh3kIz3OTOCs2zl5JHCJDaANvadjGFcdtSI+zy7bozpj5TJWGDnGkH3Rp2SBBRK6twjjrN9nbTJ2ihlkXEOA2e3SDFXEkwu6t0fLZelBUk3FWnbK/xPmsRUuEF90oxpXpZIPeFbE4nNK3HarNPL+XzA2xzSqrwNk9ICCJ9MS3OcnPpWIQR3LKLEgyPFKwy4K6WzQyNvr5uFAcV9Zrq9TM93HSOUdtFFXcDeAEu76cQorsgAyU7XbAPqSza780qF/kHhQ+Hb4q1Wmyk62nAu7dT86lujpzIWXOdFJZyb3WWjP21qe7bk8A1S5Q9lfto/bo0Rs2wHbBRtoxMrb8DTC3EtErjN/IXMZrqMZpj3hNiNxP3PYKXLWb6AbuWjQO5d4Tu4vv4QWKGyJwvkI55V0sI9a2lLODAK+x9z4K7cbGLFHqdEFCLkq7sDU3zd9q68//M/LQO3AO9sMpd8jHDg0xdgdfh5dP6grUDypz1h/HtXCT+w3Ka2geitqoTMv6y0WO1vT+c97mvbjf24rwoLiPe7qVPnxKTRPNRH1vhmOLeZsQva2ATXBCR/J+Xn4JzSWOt17N/s5ldvfD+d6FrYzDNw664efaXMIWCbVJtlKvas0I9iM2VYRM7Q==
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDcmfm4RKkVC02QrF6ajGVVlbO3+AiVVyfoO4jbUjNbBNarVNgOHNC2lyxo3DJG33uKg74/e6fwj2mr2qW7Bq/yefmMqZrwY6ZyBDOOnkmsaMjX3Q5dJVRvHaYDShseJEBVtALVZFPyYQhdCdCEI/pO1Oeh+bDgLFinWoKAx6Fau8ArjbCsU4WfmgTUQae8AkE5e+uj+2T7Nq195CgfWEnAcKTKEYTr+6Y5a8L/w6ugto41bXvbwWhgogMT7epkcsfSF14M5hi0kBTawmzSi6HsqnAs4PWadaN0IMtfZJ/ZdpNw2QjdDKReGc3AcvEUQU9840RgVmXLp0JT5kdHJZabYcpPaDRwTw3A/oNIEZCzOKve8j4aFrf003etUn7Vq5wchyqyRrk2KRnK61v8BOtF7REs5jw/hQ1PdbsGewhxmGQy3gJ670BS1apQDvrZVHUqIsl3SGcykBBQvLu0F5erZ3ENPAk0wb++ygBtqsoF0wV9rv+L/VEh7233/TUQbH6K2ggZg5SvQnjUA4JqnBcSPf8kMlEGCU+8yeGSF086vL3gpVF6VpvUa34Sh+RbLGtNPVcoTSa2yLwSHdU0NmA9Lj/0M3+ty+uK4pBU86zIIAmyB9NBN/TcpeR7PVi3J991EbVLZgwzAK7S/LAmE6vWLG1IoQbDDN7QCB9XWiFiaQ==
|
17
static/tommy.asc
Normal file
@ -0,0 +1,17 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
mDMEZUdTmhYJKwYBBAHaRw8BAQdAhXJo1MA3p2d9ei2CS3jrGXSodpJ6srUyRtRW
|
||||
m1vBhrS0IVRoaWVuIFRyYW4gPGNvbnRhY3RAdG9tbXl0cmFuLmlvPoiWBBMWCAA+
|
||||
FiEE9sVeUsHlvKYUaftn0w3sJo0/6xcFAmVHU5oCGwMFCQHhM4AFCwkIBwIGFQoJ
|
||||
CAsCBBYCAwECHgECF4AACgkQ0w3sJo0/6xevWAD7BXv7f/OyLJ+tTkENbxZX2TIF
|
||||
TaN2UaGtR4bTuTyD6yUBALlEmA6rvjyFd9ntzFeDo6y9tbXS8OHSxLF4TUQdI5AM
|
||||
uDgEZUdTmhIKKwYBBAGXVQEFAQEHQLz2RFSlF5ZHWqqMkk5PSquvhWqWFKHApVxQ
|
||||
IB8+rrEuAwEIB4h+BBgWCAAmFiEE9sVeUsHlvKYUaftn0w3sJo0/6xcFAmVHU5oC
|
||||
GwwFCQHhM4AACgkQ0w3sJo0/6xedZQD8CmMzBWgtsthI/uAxBt3tEj/ntKavJlek
|
||||
cTXhGIjp6KMA/3IcpK5QMB4uFKQEa+tK0Yi1Yf7KvqsgRkHRCVlkJ1UMuDMEZUdT
|
||||
6RYJKwYBBAHaRw8BAQdAqXDEKTuNK66FccXmi07n/QhHXA8JzrkNrOkKu3MS0wOI
|
||||
fgQYFggAJhYhBPbFXlLB5bymFGn7Z9MN7CaNP+sXBQJlR1PpAhsgBQkB4TOAAAoJ
|
||||
ENMN7CaNP+sXKNQA/2HM+tJuK1ND6sEYH3efBPvvwzNZMEpNf9m227vALzliAQDk
|
||||
wXjHV3t6muFwV4xIMnSt1rrSa3phD8Te2YNVmjuRBA==
|
||||
=lSVd
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
1
themes/WonderMod
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 3e21361da7ae3b30da3d82491fce933856a1912e
|
8
tommytran.io.code-workspace
Normal file
@ -0,0 +1,8 @@
|
||||
{
|
||||
"folders": [
|
||||
{
|
||||
"path": "."
|
||||
}
|
||||
],
|
||||
"settings": {}
|
||||
}
|