Whitespace cleanup to get in sync with AniNIX/Uniglot hooks
4
.gitignore
vendored
@ -3,7 +3,9 @@ roles/Nazara/files/dns
|
||||
roles/Nazara/files/dhcp
|
||||
roles/Node/files/vm-definitions/**
|
||||
roles/ShadowArch/files/mirrorlist
|
||||
venv/
|
||||
roles/Foundation/files/custom/public/img/**
|
||||
venv/**
|
||||
**/pkg/**
|
||||
**pkg.tar.zst
|
||||
|
||||
# ---> Python
|
||||
|
@ -38,8 +38,8 @@ all:
|
||||
static: true
|
||||
sslidentity: aninix.net-0001
|
||||
secdetection: true
|
||||
iptv_location: Milwaukee
|
||||
Node0:
|
||||
iptv_location: "Milwaukee|Madison"
|
||||
Node0:
|
||||
ipinterface: enp1s0f0
|
||||
ip: 10.0.1.4
|
||||
mac: DE:8B:9E:19:55:1D
|
||||
@ -67,7 +67,7 @@ all:
|
||||
memory: 2
|
||||
vnc: 9
|
||||
bridge: br0
|
||||
disks:
|
||||
disks:
|
||||
- '-drive format=raw,index=0,media=disk,file=/dev/sdd'
|
||||
Maat:
|
||||
ip: 10.0.1.18
|
||||
@ -147,7 +147,7 @@ all:
|
||||
cores: 2
|
||||
memory: 2
|
||||
bridge: br0
|
||||
vnc: 6
|
||||
vnc: 10
|
||||
disks:
|
||||
- '-drive format=qcow2,l2-cache-size=8M,file=/srv/maat/vm/test1.qcow2'
|
||||
test2:
|
||||
@ -157,7 +157,7 @@ all:
|
||||
cores: 2
|
||||
memory: 2
|
||||
bridge: br0
|
||||
vnc: 5
|
||||
vnc: 11
|
||||
disks:
|
||||
- '-drive format=qcow2,l2-cache-size=8M,file=/srv/maat/vm/test2.qcow2'
|
||||
test3:
|
||||
@ -167,7 +167,7 @@ all:
|
||||
cores: 2
|
||||
memory: 2
|
||||
bridge: br0
|
||||
vnc: 4
|
||||
vnc: 12
|
||||
disks:
|
||||
- '-drive format=qcow2,l2-cache-size=8M,file=/srv/maat/vm/test3.qcow2'
|
||||
appliances:
|
||||
@ -183,7 +183,7 @@ all:
|
||||
mac: 70:74:14:4F:8E:42
|
||||
Games:
|
||||
ip: 10.0.1.66
|
||||
mac: 00:1F:BC:10:1C:F8
|
||||
mac: E0:BE:03:77:0E:88
|
||||
Print:
|
||||
ip: 10.0.1.67
|
||||
mac: 00:80:92:77:CE:E4
|
||||
@ -201,7 +201,7 @@ all:
|
||||
mac: 80:D2:1D:17:63:10
|
||||
Tachikoma:
|
||||
ip: 10.0.1.72
|
||||
mac: B8:76:3F:70:DB:C1
|
||||
mac: 90:0f:0c:1a:d3:23
|
||||
Dedsec:
|
||||
ip: 10.0.1.73
|
||||
mac: 34:F6:4B:36:12:8F
|
||||
|
@ -12,7 +12,7 @@
|
||||
# Expects ANSIBLE_VAULT_FILE to be set in the environment to path the vault
|
||||
# Also set ANSIBLE_VAULT_PASSWORD_FILE to your password file location if you want it.
|
||||
#
|
||||
- hosts: "{{ targets | default('all') }}"
|
||||
- hosts: "{{ targets | default('managed') }}"
|
||||
order: sorted
|
||||
serial: "{{ threads | default('8') }}"
|
||||
gather_facts: true
|
||||
|
@ -1,19 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
cd ~/src/Ubiqtorate/roles
|
||||
|
||||
if [ -n "$(git status | grep roles &>/dev/null)" ]; then
|
||||
echo There are roles that are not committed yet.
|
||||
exit 1;
|
||||
fi
|
||||
|
||||
unset bad
|
||||
for i in `ls -1`; do
|
||||
if ! grep "$i" ../playbooks/deploy.yml &>/dev/null; then
|
||||
echo "$i is not used in playbooks/deploy.yml"
|
||||
bad="1"
|
||||
fi
|
||||
done
|
||||
if [ -n "$bad" ]; then
|
||||
exit 1;
|
||||
fi
|
10
precommit-hooks/find-large-files
Normal file
@ -0,0 +1,10 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Limit files in git to 1M.
|
||||
find . -type f -exec du -k {} \; | egrep -v '^[[:digit:]]?[[:digit:]]?[[:digit:]][[:space:]]|\s./.git/'
|
||||
|
||||
if [ $? -ne 1 ]; then
|
||||
echo
|
||||
echo "These files are probably larger than you want to commit to Git. Please try to find an alternate delivery path, such as a CDN or Git-LFS."
|
||||
exit 1;
|
||||
fi
|
14
precommit-hooks/find-missing-customizations
Normal file
@ -0,0 +1,14 @@
|
||||
#!/bin/bash
|
||||
|
||||
retcode=0
|
||||
for host in `ansible -i "examples/msn0.yml" --list-hosts managed | grep -v ' hosts '`; do
|
||||
if [ ! -f roles/ShadowArch/files/motd/"$host" ]; then
|
||||
echo "Need MOTD for $host"
|
||||
retcode=1;
|
||||
fi
|
||||
if [ ! -f roles/Sharingan/files/monit/hostdefs/"$host" ]; then
|
||||
echo "Need Sharingan-Data file for $host"
|
||||
retcode=1;
|
||||
fi
|
||||
done
|
||||
exit $retcode
|
28
precommit-hooks/find-passwords-in-files
Normal file
@ -0,0 +1,28 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Ignore Ansibilized templates.
|
||||
saferegex='\s+}}"?\s*$'
|
||||
# Ignore comments
|
||||
saferegex="$saferegex"'|^[a-z,A-Z,0-9,_,-,/,.]+:\s*;|^[a-z,A-Z,0-9,_,-,/,.]+:\s*#|^[a-z,A-Z,0-9,_,-,/,.]+:\s*//'
|
||||
# Ignore binary file matches.
|
||||
saferegex="$saferegex"'|binary\ file\ matches'
|
||||
# AniNIX Constructs
|
||||
saferegex="$saferegex"'|password.aninix.net|aur.list'
|
||||
# Web constructs
|
||||
saferegex="$saferegex"'|.css:|.html:|.md:|htdocs|htpasswd'
|
||||
# Ignore template text to set policy
|
||||
saferegex="$saferegex"'|_LENGTH|Set new|attempt|pwdchange'
|
||||
# haveibeenpwned is referenced in comments
|
||||
saferegex="$saferegex"'|haveibeenpwned'
|
||||
# Unset variables.
|
||||
saferegex="$saferegex"'|\s+=\s*$|\s+yes$|\s+no$'
|
||||
# Ignore LDAP attributes
|
||||
saferegex="$saferegex"'|pwpolicies|pwdLastSuccess|pwdAttribute|pwdMaxAge|pwdExpireWarning|pwdInHistory|pwdCheckQuality|pwdMaxFailure|pwdLockout|pwdLockoutDuration|pwdGraceAuthNLimit|pwdFailureCountInterval|pwdMustChange|pwdMinLength|pwdAllowUserChange|pwdSafeModify|pwdChangedTime|pwdPolicy|last changed their password on|/root/.ldappass'
|
||||
|
||||
egrep -ir 'secret|password|pw|passphrase' roles/*/{files,templates} 2>&1 | egrep -v "$saferegex"
|
||||
if [ $? -ne 1 ]; then
|
||||
echo
|
||||
echo If these are false positives, you need to add the signature to the whitelist in $0.
|
||||
echo Otherwise, convert any files above to templates and encode the passphrase into your vault.
|
||||
exit 1;
|
||||
fi
|
@ -8,7 +8,7 @@
|
||||
- name: Standardize the servicefile
|
||||
become: yes
|
||||
register: servicefile
|
||||
copy:
|
||||
copy:
|
||||
src: cyberbrain.service
|
||||
dest: /usr/lib/systemd/system/cyberbrain.service
|
||||
owner: root
|
||||
@ -20,7 +20,7 @@
|
||||
service:
|
||||
name: webssh
|
||||
state: stopped
|
||||
enabled: no
|
||||
enabled: no
|
||||
|
||||
- systemd:
|
||||
daemon_reload: true
|
||||
|
@ -11,8 +11,8 @@ A basic VM to provide DarkNet functionality in an AniNIX replica only needs the
|
||||
* Virtualized NIC
|
||||
* 150G of storage for any [AniNIX/WolfPack](/AniNIX/WolfPack) downloads, preferably on a unique physical harddrive that can be pulled and drilled
|
||||
|
||||
# Hosted Services
|
||||
The DarkNet uses a small package list. It uses a couple services to achieve its goals. First, it uses [NordVPN](http://nordvpn.com/) to protect all traffic -- very simply, all one has to do to connect to the VPN is to run `nordvpn connect` and provide your login credentials to the service. We also use TOR for further anonymity -- torsocks and tor-browser-en provide functionality to cover that.
|
||||
# Hosted Services
|
||||
The DarkNet uses a small package list. It uses a couple services to achieve its goals. First, it uses [NordVPN](http://nordvpn.com/) to protect all traffic -- very simply, all one has to do to connect to the VPN is to run `nordvpn connect` and provide your login credentials to the service. We also use TOR for further anonymity -- torsocks and tor-browser-en provide functionality to cover that.
|
||||
|
||||
We recommend whitelisting your replica's subnet so that NordVPN doesn't see local traffic and services like log aggregation and administration can happen without exposing access across the VPN.
|
||||
```
|
||||
|
@ -18,7 +18,7 @@
|
||||
name: "{{ item }}"
|
||||
state: started
|
||||
enabled: yes
|
||||
loop:
|
||||
loop:
|
||||
- tor
|
||||
- nordvpnd
|
||||
- deluged
|
||||
@ -26,3 +26,9 @@
|
||||
- debug:
|
||||
msg: "Remember to use the nordvpn-bin command to set up your account."
|
||||
|
||||
|
||||
# TODO Add yaml for OVPN file, user, pass to Vault
|
||||
# TODO Enforce vpn.service on server instead of nordvpnd.
|
||||
# TODO Add /etc/bashrc.d file for `alias torlynx='torsocks elinks https://check.torproject.org/'`
|
||||
# TODO Add monit checks for tor and openvpn services
|
||||
# TODO Shift deluged to WolfPack
|
||||
|
8
roles/DedSec/tasks/main.yml
Normal file
@ -0,0 +1,8 @@
|
||||
---
|
||||
# Consider https://blackarch.org/blackarch-guide-en.pdf
|
||||
- name: Install DedSec packages
|
||||
become: yes
|
||||
package:
|
||||
name:
|
||||
- tcpdump
|
||||
- wireshark
|
@ -1,7 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -x
|
||||
|
||||
URI=https://aninix.net/assets/css/theme-arc-green.css
|
||||
|
||||
# Gitea arc-green palette
|
||||
@ -59,7 +57,7 @@ a {
|
||||
cd /var/lib/gitea/web-snippets
|
||||
head="$(curl -ks https://aninix.net/ | egrep -B 99999 '^<div class="home"')"
|
||||
foot="$(curl -ks https://aninix.net/ | egrep -A 99999 '<footer>')"
|
||||
for i in `find . -type f`; do
|
||||
for i in `find . -type f`; do
|
||||
(echo "$head"
|
||||
cat "$i"
|
||||
echo "$foot") > /var/lib/gitea/custom/public/"$i".html
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
<?php
|
||||
|
||||
/*
|
||||
/*
|
||||
* Build a sitemap dynamically.
|
||||
* Update Gitea's sitemap with: `php ./sitemap.php > /var/lib/gitea/custom/sitemap.xml`
|
||||
*
|
||||
@ -15,7 +15,7 @@ echo '<?xml version="1.0" encoding="UTF-8"?>
|
||||
';
|
||||
|
||||
exec("(echo /srv/http/aninix.net/index.php; find /srv/http/aninix.net/pages -type f; find /srv/http/aninix.net/martialarts/ -type f) | egrep \.php\$ | egrep -v ^./unlisted\|^./errors/\|head.php\|foot.php\|test\|Template\|darknet", $output);
|
||||
foreach ($output as &$file) {
|
||||
foreach ($output as &$file) {
|
||||
echo ' <url>
|
||||
';
|
||||
echo ' <loc>https://aninix.net/'.substr($file,strlen($path)).'</loc>
|
||||
@ -23,10 +23,10 @@ echo ' <loc>https://aninix.net/'.substr($file,strlen($path)).'</loc>
|
||||
echo ' <lastmod>'.date('Y-m-d',filemtime($file)).'</lastmod>
|
||||
';
|
||||
echo ' </url>
|
||||
';
|
||||
';
|
||||
}
|
||||
|
||||
/* Print footer */
|
||||
/* Print footer */
|
||||
echo '</urlset>
|
||||
';
|
||||
?>
|
||||
|
@ -1,31 +1,31 @@
|
||||
# http://www.wtfpl.net/about/
|
||||
|
||||
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
||||
Version 2, December 2004
|
||||
|
||||
Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim or modified
|
||||
copies of this license document, and changing it is allowed as long
|
||||
as the name is changed.
|
||||
|
||||
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. You just DO WHAT THE FUCK YOU WANT TO.
|
||||
|
||||
ANINIX ADDENDUM
|
||||
|
||||
Trademark 2017 (https://aninix.net/)
|
||||
|
||||
The "AniNIX" name and |> logo are trademarked as of 2017/11/21.
|
||||
AniNIX materials may be reproduced and re-used (though you must
|
||||
contact the admins of the network to get written permission to use
|
||||
the AniNIX name or logo) so long as such reproduction or re-use
|
||||
does not inhibit the original AniNIX use of the same.
|
||||
|
||||
Attribution is appreciated for other materials but not legally
|
||||
required or necessary.
|
||||
|
||||
"AniNIX" trademark serial: 87177883
|
||||
|> Logo trademark serial: 87177887
|
||||
# http://www.wtfpl.net/about/
|
||||
|
||||
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
||||
Version 2, December 2004
|
||||
|
||||
Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim or modified
|
||||
copies of this license document, and changing it is allowed as long
|
||||
as the name is changed.
|
||||
|
||||
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. You just DO WHAT THE FUCK YOU WANT TO.
|
||||
|
||||
ANINIX ADDENDUM
|
||||
|
||||
Trademark 2017 (https://aninix.net/)
|
||||
|
||||
The "AniNIX" name and |> logo are trademarked as of 2017/11/21.
|
||||
AniNIX materials may be reproduced and re-used (though you must
|
||||
contact the admins of the network to get written permission to use
|
||||
the AniNIX name or logo) so long as such reproduction or re-use
|
||||
does not inhibit the original AniNIX use of the same.
|
||||
|
||||
Attribution is appreciated for other materials but not legally
|
||||
required or necessary.
|
||||
|
||||
"AniNIX" trademark serial: 87177883
|
||||
|> Logo trademark serial: 87177887
|
||||
|
Before Width: | Height: | Size: 7.2 KiB |
Before Width: | Height: | Size: 7.2 KiB |
@ -1 +0,0 @@
|
||||
AniNIX.png
|
@ -1 +0,0 @@
|
||||
AniNIX.png
|
@ -1 +0,0 @@
|
||||
AniNIX.png
|
@ -1 +0,0 @@
|
||||
AniNIX.png
|
@ -1 +0,0 @@
|
||||
/srv/yggdrasil/Pictures/AniNIX/Icons/
|
Before Width: | Height: | Size: 113 KiB |
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 614 B |
Before Width: | Height: | Size: 170 KiB |
Before Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 657 B |
Before Width: | Height: | Size: 439 B |
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 64 KiB |
Before Width: | Height: | Size: 9.7 KiB |
Before Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 342 KiB |
@ -17,7 +17,7 @@
|
||||
<div class="eight wide center column">
|
||||
<h1 class="hero ui icon header">
|
||||
<img width=20px height=20px src='/assets/img/icons/FoundationIcon.png'/>
|
||||
<a href="/user/login?redirect_to=%2fAniNIX_Martial_Arts">Open-source</a>
|
||||
<a href="/mawiki">Open-source</a>
|
||||
</h1>
|
||||
<p class="large">
|
||||
We want your training with our system to become a part of your life. This means that we provide access to a revision-controlled copy of our notes that all our students can download, keep, and contribute to. We're tired of the old era where how the system works is kept hidden from students and piecemealed out as a marketing ploy -- we want to be as trasparent as possible in how our program and our martial art function. Transparency keeps our instructors honest and our students engaged -- this means a better martial arts experience for everyone.
|
||||
@ -116,13 +116,13 @@
|
||||
>
|
||||
Checkout
|
||||
</button>
|
||||
|
||||
|
||||
<div id="error-message"></div>
|
||||
|
||||
|
||||
<script>
|
||||
(function() {
|
||||
var stripe = Stripe('pk_live_51HThYnI49P1uFPoX5ARnHSpT9D08Gbfux6O25waFLpPBsnZoLDuqopFAZeLfu0CbbICxEnPZOOLkDLTlcNjkazs100ElKcF2QX');
|
||||
|
||||
|
||||
var checkoutButton = document.getElementById('checkout-button-price_1HTuhvI49P1uFPoXXoSjPm2w');
|
||||
checkoutButton.addEventListener('click', function () {
|
||||
// When the customer clicks on the button, redirect
|
||||
@ -148,7 +148,7 @@
|
||||
});
|
||||
});
|
||||
})();
|
||||
</script>
|
||||
</script>
|
||||
<! -- END STRIPE CODE -->
|
||||
</p>
|
||||
</div>
|
||||
@ -170,13 +170,13 @@
|
||||
>
|
||||
Checkout
|
||||
</button>
|
||||
|
||||
|
||||
<div id="error-message"></div>
|
||||
|
||||
|
||||
<script>
|
||||
(function() {
|
||||
var stripe = Stripe('pk_live_51HThYnI49P1uFPoX5ARnHSpT9D08Gbfux6O25waFLpPBsnZoLDuqopFAZeLfu0CbbICxEnPZOOLkDLTlcNjkazs100ElKcF2QX');
|
||||
|
||||
|
||||
var checkoutButton = document.getElementById('checkout-button-price_1HThmcI49P1uFPoXMDCRVXTl');
|
||||
checkoutButton.addEventListener('click', function () {
|
||||
// When the customer clicks on the button, redirect
|
||||
@ -202,8 +202,8 @@
|
||||
});
|
||||
});
|
||||
})();
|
||||
</script>
|
||||
<! -- END STRIPE CODE -->
|
||||
</script>
|
||||
<! -- END STRIPE CODE -->
|
||||
</p> </div>
|
||||
</div>
|
||||
<div class="ui stackable middle very relaxed page grid">
|
||||
@ -225,13 +225,13 @@
|
||||
>
|
||||
Checkout
|
||||
</button>
|
||||
|
||||
|
||||
<div id="error-message"></div>
|
||||
|
||||
|
||||
<script>
|
||||
(function() {
|
||||
var stripe = Stripe('pk_live_51HThYnI49P1uFPoX5ARnHSpT9D08Gbfux6O25waFLpPBsnZoLDuqopFAZeLfu0CbbICxEnPZOOLkDLTlcNjkazs100ElKcF2QX');
|
||||
|
||||
|
||||
var checkoutButton = document.getElementById('checkout-button-price_1HTucZI49P1uFPoXshtbIl8W');
|
||||
checkoutButton.addEventListener('click', function () {
|
||||
// When the customer clicks on the button, redirect
|
||||
@ -258,8 +258,8 @@
|
||||
});
|
||||
})();
|
||||
</script>
|
||||
<! -- END STRIPE CODE -->
|
||||
</p>
|
||||
<! -- END STRIPE CODE -->
|
||||
</p>
|
||||
</div>
|
||||
<div class="eight wide center column" style="border: 1px solid #FFF;">
|
||||
<h1 class="hero ui icon header">
|
||||
@ -296,13 +296,13 @@
|
||||
>
|
||||
Checkout
|
||||
</button>
|
||||
|
||||
|
||||
<div id="error-message"></div>
|
||||
|
||||
|
||||
<script>
|
||||
(function() {
|
||||
var stripe = Stripe('pk_live_51HThYnI49P1uFPoX5ARnHSpT9D08Gbfux6O25waFLpPBsnZoLDuqopFAZeLfu0CbbICxEnPZOOLkDLTlcNjkazs100ElKcF2QX');
|
||||
|
||||
|
||||
var checkoutButton = document.getElementById('checkout-button-price_1HTuYII49P1uFPoXaIk9puyu');
|
||||
checkoutButton.addEventListener('click', function () {
|
||||
// When the customer clicks on the button, redirect
|
||||
|
@ -13,7 +13,7 @@
|
||||
<div class="ui stackable middle very relaxed page grid">
|
||||
<div class="sixteen wide center column" >
|
||||
<h1 class="hero ui icon header">
|
||||
<img width=20px height=20px src='/img/icons/CoreIcon.png'/>
|
||||
<img width=20px height=20px src='/assets/img/icons/CoreIcon.png'/>
|
||||
Cybersecurity Consulting
|
||||
</h1>
|
||||
<p class="large">The AniNIX offers cybersecurity consulting and advice services on a limited basis. We bill at $20 an hour -- please select your need below after negotiating with an admin.</p>
|
||||
@ -45,7 +45,7 @@
|
||||
<br/>
|
||||
</form>
|
||||
<!-- START STRIPE CODE -->
|
||||
|
||||
|
||||
<!-- Create a button that your customers click to complete their purchase. Customize the styling to suit your branding. -->
|
||||
<button
|
||||
style="background-color:#6772E5;color:#FFF;padding:8px 12px;border:0;border-radius:4px;font-size:1em"
|
||||
@ -55,13 +55,13 @@
|
||||
>
|
||||
Checkout
|
||||
</button>
|
||||
|
||||
|
||||
<div id="error-message"></div>
|
||||
|
||||
|
||||
<script>
|
||||
(function() {
|
||||
var stripe = Stripe('pk_live_51HThYnI49P1uFPoX5ARnHSpT9D08Gbfux6O25waFLpPBsnZoLDuqopFAZeLfu0CbbICxEnPZOOLkDLTlcNjkazs100ElKcF2QX');
|
||||
|
||||
|
||||
var checkoutButton = document.getElementById('checkout-button-price_1HTuehI49P1uFPoXCW9pJg5E');
|
||||
checkoutButton.addEventListener('click', function () {
|
||||
// When the customer clicks on the button, redirect
|
||||
@ -91,5 +91,17 @@
|
||||
<! -- END STRIPE CODE -->
|
||||
</p>
|
||||
</div>
|
||||
<hr style="margin-top: 50px;" />
|
||||
</div>
|
||||
<div class="ui stackable middle very relaxed page grid">
|
||||
<div class="sixteen wide center column" >
|
||||
<hr style="margin-top: 50px;" />
|
||||
<h2>Donate</h2>
|
||||
<p>If you like what we do, you can also donate on one of these platforms:</p>
|
||||
<ul style="width:500px;text-align: left;margin:auto;">
|
||||
<li><a href="https://store.steampowered.com/wishlist/id/darkfeather664/#sort=order">Steam (games)</a></li>
|
||||
<li><a href="https://www.amazon.com/hz/wishlist/ls/3CORZU03RNWST?ref_=wl_share">Amazon (hardware)</a></li>
|
||||
<li>BTC 38Nd3SgytdvSmcX3gfHeNAE2B6aPyYbS7s</li>
|
||||
<li>Coinbase USDC 0x21a05e628Ed622F7594f62Ea3C764bAEF7fE3Bf3</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<div class="ui stackable middle very relaxed page grid">
|
||||
<div class="sixteen wide center aligned centered column">
|
||||
<div>
|
||||
<img class="logo" src="/img/icons/CoreIcon.png" />
|
||||
<img class="logo" src="/assets/img/icons/CoreIcon.png" />
|
||||
</div>
|
||||
<div class="hero">
|
||||
<h2 class="ui icon header title">
|
||||
|
@ -13,7 +13,7 @@ RUN_MODE = prod
|
||||
ROOT = repos
|
||||
SCRIPT_TYPE = bash
|
||||
; Default ANSI charset
|
||||
ANSI_CHARSET =
|
||||
ANSI_CHARSET =
|
||||
; Force every new repository to be private
|
||||
FORCE_PRIVATE = false
|
||||
; Default privacy setting when creating a new repository, allowed values: last, private, public. Default is last which means the last setting used.
|
||||
@ -31,7 +31,7 @@ PREFERRED_LICENSES = AniNIX-WTFPL
|
||||
DISABLE_HTTP_GIT = false
|
||||
; Value for Access-Control-Allow-Origin header, default is not to present
|
||||
; WARNING: This maybe harmful to you website if you do not give it a right value.
|
||||
ACCESS_CONTROL_ALLOW_ORIGIN =
|
||||
ACCESS_CONTROL_ALLOW_ORIGIN =
|
||||
; Force ssh:// clone url instead of scp-style uri when default SSH port is used
|
||||
USE_COMPAT_SSH_URI = false
|
||||
; Close issues as long as a commit on any branch marks it as fixed
|
||||
@ -57,7 +57,7 @@ ENABLED = true
|
||||
; Path for uploads. Defaults to `data/tmp/uploads` (tmp gets deleted on gitea restart)
|
||||
TEMP_PATH = data/tmp/uploads
|
||||
; One or more allowed types, e.g. image/jpeg|image/png. Nothing means any file type
|
||||
ALLOWED_TYPES =
|
||||
ALLOWED_TYPES =
|
||||
; Max size of each file in megabytes. Defaults to 3MB
|
||||
FILE_MAX_SIZE = 3
|
||||
; Max number of files per upload. Defaults to 5
|
||||
@ -138,7 +138,7 @@ KEYWORDS = go,git,self-hosted,gitea,aninix,aninix::foundation
|
||||
ENABLE_HARD_LINE_BREAK = false
|
||||
; List of custom URL-Schemes that are allowed as links when rendering Markdown
|
||||
; for example git,magnet
|
||||
CUSTOM_URL_SCHEMES =
|
||||
CUSTOM_URL_SCHEMES =
|
||||
; List of file extensions that should be rendered/edited as Markdown
|
||||
; Separate the extensions with a comma. To render files without any extension as markdown, just put a comma
|
||||
FILE_EXTENSIONS = .md,.markdown,.mdown,.mkd
|
||||
@ -156,7 +156,7 @@ HTTP_PORT = 3000
|
||||
; ROOT_URL. Defaults are false for REDIRECT_OTHER_PORT and 80 for
|
||||
; PORT_TO_REDIRECT.
|
||||
REDIRECT_OTHER_PORT = false
|
||||
PORT_TO_REDIRECT = 3000
|
||||
PORT_TO_REDIRECT = 3000
|
||||
; Permission for unix socket
|
||||
UNIX_SOCKET_PERMISSION = 660
|
||||
; Local (DMZ) URL for Gitea workers (such as SSH update) accessing web service.
|
||||
@ -169,17 +169,17 @@ DISABLE_SSH = false
|
||||
; Whether to use the builtin SSH server or not.
|
||||
START_SSH_SERVER = false
|
||||
; Username to use for the builtin SSH server. If blank, then it is the value of RUN_USER.
|
||||
BUILTIN_SSH_SERVER_USER =
|
||||
BUILTIN_SSH_SERVER_USER =
|
||||
; Domain name to be exposed in clone URL
|
||||
SSH_DOMAIN = foundation.aninix.net
|
||||
; The network interface the builtin SSH server should listen on
|
||||
SSH_LISTEN_HOST =
|
||||
SSH_LISTEN_HOST =
|
||||
; Port number to be exposed in clone URL
|
||||
SSH_PORT = 22
|
||||
; The port number the builtin SSH server should listen on
|
||||
SSH_LISTEN_PORT = %(SSH_PORT)s
|
||||
; Root path of SSH directory, default is '~/.ssh', but you have to use '/home/git/.ssh'.
|
||||
SSH_ROOT_PATH =
|
||||
SSH_ROOT_PATH =
|
||||
; Gitea will create a authorized_keys file by default when it is not using the internal ssh server
|
||||
; If you intend to use the AuthorizedKeysCommand functionality then you should turn this off.
|
||||
SSH_CREATE_AUTHORIZED_KEYS_FILE = true
|
||||
@ -194,7 +194,7 @@ SSH_SERVER_KEY_EXCHANGES = diffie-hellman-group1-sha1, diffie-hellman-gro
|
||||
SSH_SERVER_MACS = hmac-sha2-256-etm@openssh.com, hmac-sha2-256, hmac-sha1, hmac-sha1-96
|
||||
; Directory to create temporary files in when testing public keys using ssh-keygen,
|
||||
; default is the system temporary directory.
|
||||
SSH_KEY_TEST_PATH =
|
||||
SSH_KEY_TEST_PATH =
|
||||
; Path to ssh-keygen, default is 'ssh-keygen' which means the shell is responsible for finding out which one to call.
|
||||
SSH_KEYGEN_PATH = ssh-keygen
|
||||
; Enable SSH Authorized Key Backup when rewriting all keys, default is true
|
||||
@ -208,7 +208,7 @@ OFFLINE_MODE = true
|
||||
DISABLE_ROUTER_LOG = false
|
||||
; Generate steps:
|
||||
; $ ./gitea cert -ca=true -duration=8760h0m0s -host=myhost.example.com
|
||||
;
|
||||
;
|
||||
; Or from a .pfx file exported from the Windows certificate store (do
|
||||
; not forget to export the private key):
|
||||
; $ openssl pkcs12 -in cert.pfx -out cert.pem -nokeys
|
||||
@ -301,7 +301,7 @@ DISABLE_REGULAR_ORG_CREATION = true
|
||||
; Whether the installer is disabled
|
||||
INSTALL_LOCK = true
|
||||
; !!CHANGE THIS TO KEEP YOUR USER DATA SAFE!!
|
||||
SECRET_KEY = {{ secrets.Foundation.secret_key }}
|
||||
SECRET_KEY = {{ secrets.Foundation.secret_key }}
|
||||
; How long to remember that an user is logged in before requiring relogin (in days)
|
||||
LOGIN_REMEMBER_DAYS = 7
|
||||
COOKIE_USERNAME = gitea_awesome
|
||||
@ -318,15 +318,15 @@ DISABLE_GIT_HOOKS = false
|
||||
INTERNAL_TOKEN = {{ secrets.Foundation.internal_token }}
|
||||
|
||||
[openid]
|
||||
;
|
||||
;
|
||||
; OpenID is an open, standard and decentralized authentication protocol.
|
||||
; Your identity is the address of a webpage you provide, which describes
|
||||
; how to prove you are in control of that page.
|
||||
;
|
||||
;
|
||||
; For more info: https://en.wikipedia.org/wiki/OpenID
|
||||
;
|
||||
;
|
||||
; Current implementation supports OpenID-2.0
|
||||
;
|
||||
;
|
||||
; Tested to work providers at the time of writing:
|
||||
; - Any GNUSocial node (your.hostname.tld/username)
|
||||
; - Any SimpleID provider (http://simpleid.koinic.net)
|
||||
@ -334,7 +334,7 @@ INTERNAL_TOKEN = {{ secrets.Foundation.internal_token }}
|
||||
; - openid.stackexchange.com
|
||||
; - login.launchpad.net
|
||||
; - <username>.livejournal.com
|
||||
;
|
||||
;
|
||||
; Whether to allow signin in via OpenID
|
||||
ENABLE_OPENID_SIGNIN = FALSE
|
||||
; Whether to allow registering via OpenID
|
||||
@ -344,12 +344,12 @@ ENABLE_OPENID_SIGNIN = FALSE
|
||||
; Space separated.
|
||||
; Only these would be allowed if non-blank.
|
||||
; Example value: trusted.domain.org trusted.domain.net
|
||||
WHITELISTED_URIS =
|
||||
WHITELISTED_URIS =
|
||||
; Forbidden URI patterns (POSIX regexp).
|
||||
; Space separated.
|
||||
; Only used if WHITELISTED_URIS is blank.
|
||||
; Example value: loadaverage.org/badguy stackexchange.com/.*spammer
|
||||
BLACKLISTED_URIS =
|
||||
BLACKLISTED_URIS =
|
||||
ENABLE_OPENID_SIGNUP = false
|
||||
|
||||
[service]
|
||||
@ -361,7 +361,7 @@ RESET_PASSWD_CODE_LIVE_MINUTES = 180
|
||||
REGISTER_EMAIL_CONFIRM = false
|
||||
; List of domain names that are allowed to be used to register on a Gitea instance
|
||||
; gitea.io,example.com
|
||||
EMAIL_DOMAIN_WHITELIST =
|
||||
EMAIL_DOMAIN_WHITELIST =
|
||||
; Disallow registration, only allow admins to create accounts.
|
||||
DISABLE_REGISTRATION = true
|
||||
; Allow registration only using third-party services, it works only when DISABLE_REGISTRATION is false
|
||||
@ -380,8 +380,8 @@ ENABLE_CAPTCHA = false
|
||||
CAPTCHA_TYPE = image
|
||||
; Enable recaptcha to use Google's recaptcha service
|
||||
; Go to https://www.google.com/recaptcha/admin to sign up for a key
|
||||
RECAPTCHA_SECRET =
|
||||
RECAPTCHA_SITEKEY =
|
||||
RECAPTCHA_SECRET =
|
||||
RECAPTCHA_SITEKEY =
|
||||
; Change this to use recaptcha.net or other recaptcha service
|
||||
RECAPTCHA_URL = https://www.google.com/recaptcha/
|
||||
; Default value for KeepEmailPrivate
|
||||
@ -435,18 +435,18 @@ ENABLED = false
|
||||
; Buffer length of channel, keep it as it is if you don't know what it is.
|
||||
SEND_BUFFER_LEN = 100
|
||||
; Prefix displayed before subject in mail
|
||||
SUBJECT_PREFIX =
|
||||
SUBJECT_PREFIX =
|
||||
; Mail server
|
||||
; Gmail: smtp.gmail.com:587
|
||||
; QQ: smtp.qq.com:465
|
||||
; Note, if the port ends with "465", SMTPS will be used. Using STARTTLS on port 587 is recommended per RFC 6409. If the server supports STARTTLS it will always be used.
|
||||
HOST =
|
||||
HOST =
|
||||
; Disable HELO operation when hostnames are different.
|
||||
DISABLE_HELO =
|
||||
DISABLE_HELO =
|
||||
; Custom hostname for HELO operation, if no value is provided, one is retrieved from system.
|
||||
HELO_HOSTNAME =
|
||||
HELO_HOSTNAME =
|
||||
; Do not verify the certificate of the server. Only use this for self-signed certificates
|
||||
SKIP_VERIFY =
|
||||
SKIP_VERIFY =
|
||||
; Use client certificate
|
||||
USE_CERTIFICATE = false
|
||||
CERT_FILE = custom/mailer/cert.pem
|
||||
@ -454,11 +454,11 @@ KEY_FILE = custom/mailer/key.pem
|
||||
; Should SMTP connection use TLS
|
||||
IS_TLS_ENABLED = false
|
||||
; Mail from address, RFC 5322. This can be just an email address, or the `"Name" <email@example.com>` format
|
||||
FROM =
|
||||
FROM =
|
||||
; Mailer user name and password
|
||||
USER =
|
||||
USER =
|
||||
; Use PASSWD = `your password` for quoting if you use special characters in the password.
|
||||
PASSWD =
|
||||
PASSWD =
|
||||
; Send mails as plain text
|
||||
SEND_AS_PLAIN_TEXT = false
|
||||
; Set Mailer Type (either SMTP, sendmail or dummy to just send to the log)
|
||||
@ -466,7 +466,7 @@ MAILER_TYPE = smtp
|
||||
; Specify an alternative sendmail binary
|
||||
SENDMAIL_PATH = sendmail
|
||||
; Specify any extra sendmail arguments
|
||||
SENDMAIL_ARGS =
|
||||
SENDMAIL_ARGS =
|
||||
|
||||
[cache]
|
||||
; Either "memory", "redis", or "memcache", default is "memory"
|
||||
@ -476,7 +476,7 @@ INTERVAL = 60
|
||||
; For "redis" and "memcache", connection host address
|
||||
; redis: network=tcp,addr=:6379,password=macaron,db=0,pool_size=100,idle_timeout=180
|
||||
; memcache: `127.0.0.1:11211`
|
||||
HOST =
|
||||
HOST =
|
||||
; Time to keep items in cache if not used, default is 16 hours.
|
||||
; Setting it to 0 disables caching
|
||||
ITEM_TTL = 16h
|
||||
@ -541,7 +541,7 @@ MAX_FILES = 5
|
||||
; Specifies the format for fully outputted dates. Defaults to RFC1123
|
||||
; Special supported values are ANSIC, UnixDate, RubyDate, RFC822, RFC822Z, RFC850, RFC1123, RFC1123Z, RFC3339, RFC3339Nano, Kitchen, Stamp, StampMilli, StampMicro and StampNano
|
||||
; For more information about the format see http://golang.org/pkg/time/#pkg-constants
|
||||
FORMAT =
|
||||
FORMAT =
|
||||
|
||||
[log]
|
||||
ROOT_PATH = /var/log/gitea/
|
||||
@ -564,22 +564,22 @@ STACKTRACE_LEVEL = Critical
|
||||
; Generic log modes
|
||||
[log.x]
|
||||
FLAGS = stdflags
|
||||
EXPRESSION =
|
||||
PREFIX =
|
||||
EXPRESSION =
|
||||
PREFIX =
|
||||
COLORIZE = false
|
||||
|
||||
; For "console" mode only
|
||||
[log.console]
|
||||
LEVEL =
|
||||
LEVEL =
|
||||
COLORIZE = false
|
||||
STDERR = false
|
||||
|
||||
; For "file" mode only
|
||||
[log.file]
|
||||
LEVEL =
|
||||
LEVEL =
|
||||
; Set the file_name for the logger. If this is a relative path this
|
||||
; will be relative to ROOT_PATH
|
||||
FILE_NAME =
|
||||
FILE_NAME =
|
||||
; This enables automated log rotate(switch of following options), default is true
|
||||
LOG_ROTATE = true
|
||||
; Max number of lines in a single file, default is 1000000
|
||||
@ -597,7 +597,7 @@ COMPRESSION_LEVEL = -1
|
||||
|
||||
; For "conn" mode only
|
||||
[log.conn]
|
||||
LEVEL =
|
||||
LEVEL =
|
||||
; Reconnect host for every single message, default is false
|
||||
RECONNECT_ON_MSG = false
|
||||
; Try to reconnect when connection is lost, default is false
|
||||
@ -605,21 +605,21 @@ RECONNECT = false
|
||||
; Either "tcp", "unix" or "udp", default is "tcp"
|
||||
PROTOCOL = tcp
|
||||
; Host address
|
||||
ADDR =
|
||||
ADDR =
|
||||
|
||||
; For "smtp" mode only
|
||||
[log.smtp]
|
||||
LEVEL =
|
||||
LEVEL =
|
||||
; Name displayed in mail title, default is "Diagnostic message from server"
|
||||
SUBJECT = Diagnostic message from server
|
||||
; Mail server
|
||||
HOST =
|
||||
HOST =
|
||||
; Mailer user name and password
|
||||
USER =
|
||||
USER =
|
||||
; Use PASSWD = `your password` for quoting if you use special characters in the password.
|
||||
PASSWD =
|
||||
PASSWD =
|
||||
; Receivers, can be one or more, e.g. 1@example.com,2@example.com
|
||||
RECEIVERS =
|
||||
RECEIVERS =
|
||||
|
||||
[cron]
|
||||
; Enable running cron tasks periodically.
|
||||
@ -637,7 +637,7 @@ SCHEDULE = @every 24h
|
||||
TIMEOUT = 60s
|
||||
; Arguments for command 'git fsck', e.g. "--unreachable --tags"
|
||||
; see more on http://git-scm.com/docs/git-fsck
|
||||
ARGS =
|
||||
ARGS =
|
||||
|
||||
; Check repository statistics
|
||||
[cron.check_repo_stats]
|
||||
@ -676,7 +676,7 @@ MAX_GIT_DIFF_LINE_CHARACTERS = 5000
|
||||
MAX_GIT_DIFF_FILES = 100
|
||||
; Arguments for command 'git gc', e.g. "--aggressive --auto"
|
||||
; see more on http://git-scm.com/docs/git-gc/
|
||||
GC_ARGS =
|
||||
GC_ARGS =
|
||||
; If use git wire protocol version 2 when git version >= 2.18, default is true, set to false when you always want git wire protocol version 1
|
||||
EnableAutoGitWireProtocol = true
|
||||
|
||||
@ -780,5 +780,5 @@ IS_INPUT_FILE = false
|
||||
; Enables metrics endpoint. True or false; default is false.
|
||||
ENABLED = false
|
||||
; If you want to add authorization, specify a token here
|
||||
TOKEN =
|
||||
TOKEN =
|
||||
|
||||
|
10
roles/Games/tasks/main.yml
Normal file
@ -0,0 +1,10 @@
|
||||
---
|
||||
|
||||
- name: Install Games packages
|
||||
become: yes
|
||||
package:
|
||||
name:
|
||||
- mgba-qt
|
||||
- steam
|
||||
- steam-native-runtime
|
||||
- discord
|
@ -14,7 +14,7 @@ LOAD_MODULES=true
|
||||
|
||||
# Run "lircd --driver=help" for a list of supported drivers.
|
||||
DRIVER="default"
|
||||
# usually /dev/lirc0 is the correct setting for systems using udev
|
||||
# usually /dev/lirc0 is the correct setting for systems using udev
|
||||
DEVICE="/dev/lirc0"
|
||||
MODULES="lirc_rpi"
|
||||
|
||||
|
@ -5,9 +5,9 @@
|
||||
# this config file was automatically generated
|
||||
# using lirc-0.9.0-pre1(default) on Thu Feb 9 18:06:50 2017
|
||||
#
|
||||
# contributed by
|
||||
# contributed by
|
||||
#
|
||||
# brand: Insignia
|
||||
# brand: Insignia
|
||||
# model no. of remote control: NS-RC4NA-14
|
||||
# devices being controlled by this remote: TV
|
||||
#
|
||||
|
@ -8,7 +8,7 @@
|
||||
# contributed by darkfeather@aninix.net
|
||||
#
|
||||
# brand: LG.conf
|
||||
# model no. of remote control: AKB73715608
|
||||
# model no. of remote control: AKB73715608
|
||||
# devices being controlled by this remote: TV
|
||||
#
|
||||
|
||||
@ -49,10 +49,10 @@ end remote
|
||||
# this config file was automatically generated
|
||||
# using lirc-0.9.0-pre1(default) on Tue May 1 06:40:29 2018
|
||||
#
|
||||
# contributed by
|
||||
# contributed by
|
||||
#
|
||||
# brand: ./lasko.conf
|
||||
# model no. of remote control:
|
||||
# model no. of remote control:
|
||||
# devices being controlled by this remote:
|
||||
#
|
||||
|
||||
@ -118,9 +118,9 @@ end remote
|
||||
# this config file was automatically generated
|
||||
# using lirc-0.9.0-pre1(default) on Thu Feb 9 18:06:50 2017
|
||||
#
|
||||
# contributed by
|
||||
# contributed by
|
||||
#
|
||||
# brand: Insignia
|
||||
# brand: Insignia
|
||||
# model no. of remote control: NS-RC4NA-14
|
||||
# devices being controlled by this remote: TV
|
||||
#
|
||||
|
@ -8,7 +8,7 @@
|
||||
# contributed by darkfeather@aninix.net
|
||||
#
|
||||
# brand: LG.conf
|
||||
# model no. of remote control: AKB73715608
|
||||
# model no. of remote control: AKB73715608
|
||||
# devices being controlled by this remote: TV
|
||||
#
|
||||
|
||||
|
@ -16,7 +16,7 @@
|
||||
user: "{{ ansible_user_id }}"
|
||||
state: present
|
||||
key: "{{ lookup('file', lookup('env','HOME') + '/.ssh/geth.pub') }}"
|
||||
|
||||
|
||||
- name: Copy the motion config
|
||||
become: yes
|
||||
register: motion_config
|
||||
@ -32,13 +32,13 @@
|
||||
owner: motion
|
||||
group: motion
|
||||
mode: 0750
|
||||
loop:
|
||||
loop:
|
||||
- "/var/log/motion"
|
||||
- "/var/run/motion"
|
||||
|
||||
- name: Restart the motion service
|
||||
become: yes
|
||||
when: motion_config.changed and motion_enabled
|
||||
when: motion_config.changed and motion_enabled
|
||||
service:
|
||||
name: motion
|
||||
state: started
|
||||
@ -119,7 +119,7 @@
|
||||
- name: Copy lircd remote config
|
||||
register: lircd_remote_config
|
||||
become: yes
|
||||
copy:
|
||||
copy:
|
||||
src: "lircd.conf/{{ inventory_hostname }}"
|
||||
dest: /etc/lirc/lircd.conf
|
||||
|
||||
|
@ -5,4 +5,4 @@
|
||||
name:
|
||||
- openhab2
|
||||
|
||||
- name:
|
||||
- name:
|
||||
|
29
roles/IRC-Bots/tasks/main.yml
Normal file
@ -0,0 +1,29 @@
|
||||
---
|
||||
|
||||
- user:
|
||||
name: "{{ item }}"
|
||||
state: present
|
||||
shell: "{{ daemon_shell | default('/sbin/nologin') }}"
|
||||
local: yes
|
||||
groups: ircd
|
||||
loop:
|
||||
- bitbot
|
||||
- dsbridge
|
||||
- theraven
|
||||
- werewolf
|
||||
|
||||
# Install TheRaven package
|
||||
- package:
|
||||
name:
|
||||
- TheRaven
|
||||
|
||||
- git:
|
||||
repo: 'https://github.com/jesopo/bitbot.git'
|
||||
dest: /usr/local/src/bitbot/
|
||||
clone: yes
|
||||
update: yes
|
||||
|
||||
- git:
|
||||
repo:
|
||||
|
||||
-
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
|
||||
- name: IRC packages
|
||||
- name: IRC packages
|
||||
become: yes
|
||||
package:
|
||||
name:
|
||||
@ -10,7 +10,7 @@
|
||||
|
||||
- name: KiwiIRC Web Front
|
||||
become: yes
|
||||
git:
|
||||
git:
|
||||
repo: https://github.com/prawnsalad/KiwiIRC.git
|
||||
dest: /usr/local/src/KiwiIRC
|
||||
|
||||
|
10
roles/Maat/tasks/main.yml
Normal file
@ -0,0 +1,10 @@
|
||||
---
|
||||
- name: Sharingan packages
|
||||
become: yes
|
||||
package:
|
||||
name:
|
||||
- openvas
|
||||
- greenbone-security-assistant
|
||||
- elasticsearch6
|
||||
- mongodb
|
||||
- graylog
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
|
||||
|
||||
- name: Clone pi-hole
|
||||
become: yes
|
||||
git:
|
||||
@ -10,7 +10,7 @@
|
||||
- name: Install pi-hole if needed
|
||||
become: yes
|
||||
register: pihole_install
|
||||
command:
|
||||
command:
|
||||
creates: /usr/bin/pihole-FTL
|
||||
cmd: false # bash basic-install.sh
|
||||
chdir: '/opt/pi-hole/automated install'
|
||||
@ -30,7 +30,7 @@
|
||||
register: dns_updated
|
||||
copy:
|
||||
dest: /etc/pihole/custom.list
|
||||
src: dns
|
||||
src: dns
|
||||
owner: pihole
|
||||
group: pihole
|
||||
mode: 0644
|
||||
|
@ -14,11 +14,11 @@
|
||||
- qemu-emulators-full
|
||||
- ddrescue
|
||||
state: present
|
||||
|
||||
|
||||
- name: Copy VM definitions
|
||||
become: yes
|
||||
register: vmdefs
|
||||
copy:
|
||||
copy:
|
||||
src: vm-definitions/
|
||||
dest: /usr/lib/systemd/system
|
||||
owner: root
|
||||
@ -28,7 +28,7 @@
|
||||
- name: Reload systemd daemon
|
||||
become: yes
|
||||
when: vmdefs.changed
|
||||
systemd:
|
||||
systemd:
|
||||
daemon_reload: yes
|
||||
|
||||
- name: QEMU Bridge Config
|
||||
|
@ -1,30 +1,28 @@
|
||||
---
|
||||
|
||||
- name: SSH
|
||||
- name: SSH (ArchLinux)
|
||||
become: yes
|
||||
when: ansible_os_family == "Archlinux"
|
||||
package:
|
||||
state: present
|
||||
name:
|
||||
- bash
|
||||
- sudo
|
||||
- openssh
|
||||
|
||||
- name: SSH Config
|
||||
- name: SSH (Raspbian)
|
||||
become: yes
|
||||
copy:
|
||||
src: ssh_config
|
||||
dest: /etc/ssh/ssh_config
|
||||
|
||||
- name: SSHD Config
|
||||
become: yes
|
||||
copy:
|
||||
src: sshd_config
|
||||
dest: /etc/ssh/sshd_config
|
||||
when: ansible_os_family == "Debian"
|
||||
package:
|
||||
state: present
|
||||
name:
|
||||
- openssh-server
|
||||
- openssh-client
|
||||
|
||||
- name: Mark SSH keys as immutable
|
||||
become: yes
|
||||
file:
|
||||
path: "{{ item }}"
|
||||
path: "{{ item }}"
|
||||
attributes: i
|
||||
loop:
|
||||
loop:
|
||||
- /etc/ssh/ssh_host_ed25519_key
|
||||
- /etc/ssh/ssh_host_ed25519_key.pub
|
||||
- /etc/ssh/ssh_host_rsa_key
|
||||
@ -32,17 +30,52 @@
|
||||
|
||||
- name: Add SSH control groups
|
||||
become: yes
|
||||
group:
|
||||
group:
|
||||
name: "{{ item }}"
|
||||
state: present
|
||||
loop:
|
||||
loop:
|
||||
- ssh-allow
|
||||
- ssh-forward
|
||||
- sftp-home-jail
|
||||
|
||||
- name: Add SSH user to ssh-allow
|
||||
become: yes
|
||||
user:
|
||||
user:
|
||||
name: "{{ ansible_user_id }}"
|
||||
groups: ssh-allow
|
||||
append: yes
|
||||
|
||||
- name: Copy the SSH key
|
||||
authorized_key:
|
||||
user: "{{ ansible_user_id }}"
|
||||
state: present
|
||||
key: "{{ lookup('file', lookup('env','HOME') + '/.ssh/deploy.pub') }}"
|
||||
|
||||
- name: SSH Config
|
||||
become: yes
|
||||
copy:
|
||||
src: ssh_config
|
||||
dest: /etc/ssh/ssh_config
|
||||
|
||||
- name: SSHD Config
|
||||
become: yes
|
||||
register: sshd_config
|
||||
copy:
|
||||
src: sshd_config
|
||||
dest: /etc/ssh/sshd_config
|
||||
|
||||
- name: Restart SSHD (ArchLinux)
|
||||
become: yes
|
||||
when: ansible_os_family == "Archlinux" and sshd_config.changed
|
||||
service:
|
||||
name: sshd
|
||||
state: restarted
|
||||