init
This commit is contained in:
commit
f4b97137d5
63
caddy/Caddyfile
Normal file
63
caddy/Caddyfile
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
# The Caddyfile is an easy way to configure your Caddy web server.
|
||||||
|
#
|
||||||
|
# Unless the file starts with a global options block, the first
|
||||||
|
# uncommented line is always the address of your site.
|
||||||
|
#
|
||||||
|
# To use your own domain name (with automatic HTTPS), first make
|
||||||
|
# sure your domain's A/AAAA DNS records are properly pointed to
|
||||||
|
# this machine's public IP, then replace ":80" below with your
|
||||||
|
# domain name.
|
||||||
|
{
|
||||||
|
admin 0.0.0.0:2019
|
||||||
|
}
|
||||||
|
:80 {
|
||||||
|
respond "You're in limbo"
|
||||||
|
}
|
||||||
|
|
||||||
|
# Refer to the Caddy docs for more information:
|
||||||
|
# https://caddyserver.com/docs/caddyfile
|
||||||
|
pubnixtodo.p.projectsegfau.lt:80 {
|
||||||
|
redir https://todo.projectsegfau.lt/share/WkihzkuopVpzOezCmQPEXxdFsMUJJVsyXzKlgsmx/auth?view=kanban
|
||||||
|
}
|
||||||
|
*.p.projectsegfau.lt:80 {
|
||||||
|
@host header_regexp host Host ^(?:[a-zA-Z0-9]+\-)?([A-Za-z0-9]+)\.p\.projectsegfau\.lt
|
||||||
|
handle @host {
|
||||||
|
reverse_proxy unix///home/{re.host.1}/.webserver.sock {
|
||||||
|
health_status 2xx
|
||||||
|
health_interval 5s
|
||||||
|
health_timeout 60s
|
||||||
|
}
|
||||||
|
}
|
||||||
|
handle_errors {
|
||||||
|
@502 expression {err.status_code} == 502
|
||||||
|
handle @502 {
|
||||||
|
respond * 502 {
|
||||||
|
body "This site is either down or does not exist.
|
||||||
|
If this site really does exist, please make sure your Caddy is running. Try systemctl --user start caddy. It is also possible you have a config issue, if so, please reach out to us on Matrix.
|
||||||
|
"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
respond "{err.status_code} | {err.status_text} (on {re.host.1})" {
|
||||||
|
close
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
:60606 {
|
||||||
|
root * /var/www/error_pages
|
||||||
|
templates
|
||||||
|
file_server {
|
||||||
|
index 502.html
|
||||||
|
}
|
||||||
|
handle_errors {
|
||||||
|
@502 expression {err.status_code} == 502
|
||||||
|
handle @502 {
|
||||||
|
respond * 502 {
|
||||||
|
body "
|
||||||
|
This site is either down or does not exist.
|
||||||
|
If this site really does exist, please make sure your Caddy is running. Try systemctl --user start caddy. It is also possible you have a config issue, if so, please reach out to us on Matrix.
|
||||||
|
"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
34
dynamic-motd.d/00-header
Executable file
34
dynamic-motd.d/00-header
Executable file
@ -0,0 +1,34 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# 00-header - create the header of the MOTD
|
||||||
|
# Copyright (c) 2013 Nick Charlton
|
||||||
|
# Copyright (c) 2009-2010 Canonical Ltd.
|
||||||
|
#
|
||||||
|
# Authors: Nick Charlton <hello@nickcharlton.net>
|
||||||
|
# Dustin Kirkland <kirkland@canonical.com>
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License along
|
||||||
|
# with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
|
[ -r /etc/lsb-release ] && . /etc/lsb-release
|
||||||
|
|
||||||
|
if [ -z "$DISTRIB_DESCRIPTION" ] && [ -x /usr/bin/lsb_release ]; then
|
||||||
|
DISTRIB_DESCRIPTION=$(lsb_release -s -d)
|
||||||
|
fi
|
||||||
|
cat /var/logo-ascii.txt
|
||||||
|
figlet -f slant Pubnix
|
||||||
|
printf "Hi $USER,\nWelcome to the Project Segfault Pubnix, running ${DISTRIB_DESCRIPTION}.\n\n"
|
||||||
|
printf "You can install packages with nix or use podman!\n\n"
|
||||||
|
printf "Unsure what to do? There are guides available on our wiki! https://wiki.projectsegfau.lt/index.php?title=Category:Pubnix\n\n"
|
||||||
|
|
43
dynamic-motd.d/10-sysinfo
Executable file
43
dynamic-motd.d/10-sysinfo
Executable file
@ -0,0 +1,43 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# 10-sysinfo - generate the system information
|
||||||
|
# Copyright (c) 2013 Nick Charlton
|
||||||
|
#
|
||||||
|
# Authors: Nick Charlton <hello@nickcharlton.net>
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License along
|
||||||
|
# with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
|
date=`date`
|
||||||
|
load=`cat /proc/loadavg | awk '{print $1"/"$2"/"$3}'`
|
||||||
|
root_usage=`df -h / | awk '/\// {print $(NF-1)}'`
|
||||||
|
memory_usage=`free -m | awk '/Mem:/ { total=$2 } /buffers\/cache/ { used=$3 } END { printf("%3.1f%%", used/total*100)}'`
|
||||||
|
swap_usage=`free -m | awk '/Swap/ { printf("%3.1f%%", $3/$2*100) }'`
|
||||||
|
disk_usage=`df -h / | awk 'NR==2{ printf $3" / "$2}'`
|
||||||
|
users=`users | wc -w`
|
||||||
|
time=`uptime -p`
|
||||||
|
processes=`ps aux | wc -l`
|
||||||
|
|
||||||
|
echo "System information as of: $date"
|
||||||
|
echo "--------------------------------------------------------------"
|
||||||
|
echo
|
||||||
|
printf " \t1min/5min/15min\n"
|
||||||
|
printf "System load:\t%s\t" $load
|
||||||
|
printf "Uptime:\t\t%s\t\t\t\t%s\n" "$time"
|
||||||
|
printf "Disk usage:\t\t%s\n" "$disk_usage"
|
||||||
|
printf "Memory usage:\t%s\t\tSwap usage:\t%s\n" $root_usage $swap_usage
|
||||||
|
printf "Active Users:\t%s\t\tProcesses:\t%s\n" $users $processes
|
||||||
|
echo
|
||||||
|
echo "--------------------------------------------------------------"
|
||||||
|
echo
|
24
dynamic-motd.d/90-footer
Executable file
24
dynamic-motd.d/90-footer
Executable file
@ -0,0 +1,24 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# 99-footer - write the admin's footer to the MOTD
|
||||||
|
# Copyright (c) 2013 Nick Charlton
|
||||||
|
# Copyright (c) 2009-2010 Canonical Ltd.
|
||||||
|
#
|
||||||
|
# Authors: Nick Charlton <hello@nickcharlton.net>
|
||||||
|
# Dustin Kirkland <kirkland@canonical.com>
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License along
|
||||||
|
# with this program; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
|
||||||
|
[ -f /etc/motd.tail ] && cat /etc/motd.tail || true
|
61
limits.conf
Normal file
61
limits.conf
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
# /etc/security/limits.conf
|
||||||
|
#
|
||||||
|
#Each line describes a limit for a user in the form:
|
||||||
|
#
|
||||||
|
#<domain> <type> <item> <value>
|
||||||
|
#
|
||||||
|
#Where:
|
||||||
|
#<domain> can be:
|
||||||
|
# - a user name
|
||||||
|
# - a group name, with @group syntax
|
||||||
|
# - the wildcard *, for default entry
|
||||||
|
# - the wildcard %, can be also used with %group syntax,
|
||||||
|
# for maxlogin limit
|
||||||
|
# - NOTE: group and wildcard limits are not applied to root.
|
||||||
|
# To apply a limit to the root user, <domain> must be
|
||||||
|
# the literal username root.
|
||||||
|
#
|
||||||
|
#<type> can have the two values:
|
||||||
|
# - "soft" for enforcing the soft limits
|
||||||
|
# - "hard" for enforcing hard limits
|
||||||
|
#
|
||||||
|
#<item> can be one of the following:
|
||||||
|
# - core - limits the core file size (KB)
|
||||||
|
# - data - max data size (KB)
|
||||||
|
# - fsize - maximum filesize (KB)
|
||||||
|
# - memlock - max locked-in-memory address space (KB)
|
||||||
|
# - nofile - max number of open file descriptors
|
||||||
|
# - rss - max resident set size (KB)
|
||||||
|
# - stack - max stack size (KB)
|
||||||
|
# - cpu - max CPU time (MIN)
|
||||||
|
# - nproc - max number of processes
|
||||||
|
# - as - address space limit (KB)
|
||||||
|
# - maxlogins - max number of logins for this user
|
||||||
|
# - maxsyslogins - max number of logins on the system
|
||||||
|
# - priority - the priority to run user process with
|
||||||
|
# - locks - max number of file locks the user can hold
|
||||||
|
# - sigpending - max number of pending signals
|
||||||
|
# - msgqueue - max memory used by POSIX message queues (bytes)
|
||||||
|
# - nice - max nice priority allowed to raise to values: [-20, 19]
|
||||||
|
# - rtprio - max realtime priority
|
||||||
|
# - chroot - change root to directory (Debian-specific)
|
||||||
|
#
|
||||||
|
#<domain> <type> <item> <value>
|
||||||
|
#
|
||||||
|
|
||||||
|
#* soft core 0
|
||||||
|
#root hard core 100000
|
||||||
|
#* hard rss 10000
|
||||||
|
#@student hard nproc 20
|
||||||
|
#@faculty soft nproc 20
|
||||||
|
#@faculty hard nproc 50
|
||||||
|
#ftp hard nproc 0
|
||||||
|
#ftp - chroot /ftp
|
||||||
|
#@student - maxlogins 4
|
||||||
|
@users hard nproc 1000
|
||||||
|
@users hard as 8000000
|
||||||
|
@users hard rss 8000000
|
||||||
|
@relaxed hard nproc 10000
|
||||||
|
@relaxed hard as 32000000
|
||||||
|
@relaxed hard rss 32000000
|
||||||
|
# End of file
|
15
logo-ascii.txt
Normal file
15
logo-ascii.txt
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
[0m [0m [0m [0m [0m [0m [0m[0m[0m[0m[0m[0m[0m[0m[0m[0m[0m[0m[0m[0m[0m[0m[0m[0m[0m[0m[0m[0m[0m[0m[0m[0m[0m[0m[0m [0m [0m [0m [0m [0m [0m
|
||||||
|
[0m [0m [0m [0m [0m [0m [0m.[0m.[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m.[0m.[0m [0m [0m [0m [0m [0m [0m
|
||||||
|
[0m [0m [0m [0m [0m [0m.[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m.[0m [0m [0m [0m [0m [0m
|
||||||
|
[0m [0m [0m [0m [0m [0m.[0m'[0m'[0m'[0m'[0m'[0m'[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m'[0m.[0m'[0m'[0m'[0m'[0m.[0m [0m [0m [0m [0m [0m
|
||||||
|
[0m [0m [0m [0m [0m [0m.[0m'[0m'[0m'[0m'[0m'[0m[32m:[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m'[0m'[0m.[0m.[0m.[0m.[0m'[0m'[0m'[0m'[0m.[0m [0m [0m [0m [0m [0m
|
||||||
|
[0m [0m [0m [0m [0m [0m.[0m'[0m'[0m'[0m'[0m.[0m[32m:[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m'[0m'[0m.[0m.[0m.[0m.[0m.[0m.[0m.[0m'[0m'[0m'[0m'[0m'[0m.[0m [0m [0m [0m [0m [0m
|
||||||
|
[0m [0m [0m [0m [0m [0m.[0m'[0m'[0m'[0m'[0m.[0m[32m:[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m,[0m'[0m.[0m.[0m.[0m.[0m.[0m.[0m.[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m.[0m [0m [0m [0m [0m [0m
|
||||||
|
[0m [0m [0m [0m [0m [0m.[0m'[0m'[0m'[0m'[0m.[0m[32m:[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m[32m;[0m[32m;[0m[32m:[0m[32m:[0m[32m:[0m.[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m.[0m [0m [0m [0m [0m [0m
|
||||||
|
[0m [0m [0m [0m [0m [0m.[0m'[0m'[0m'[0m'[0m.[0m[32m:[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m[32m;[0m.[0m.[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m.[0m [0m [0m [0m [0m [0m
|
||||||
|
[0m [0m [0m [0m [0m [0m.[0m'[0m'[0m'[0m'[0m.[0m[32m:[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m[32m:[0m'[0m.[0m.[0m.[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m.[0m [0m [0m [0m [0m [0m
|
||||||
|
[0m [0m [0m [0m [0m [0m.[0m'[0m'[0m'[0m'[0m.[0m[32m:[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m[32mc[0m[32m:[0m'[0m.[0m.[0m.[0m.[0m.[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m.[0m [0m [0m [0m [0m [0m
|
||||||
|
[0m [0m [0m [0m [0m [0m.[0m'[0m'[0m'[0m'[0m.[0m[32m;[0m[32mc[0m[32mc[0m[32m;[0m'[0m.[0m.[0m.[0m.[0m.[0m.[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m.[0m [0m [0m [0m [0m [0m
|
||||||
|
[0m [0m [0m [0m [0m [0m.[0m'[0m'[0m'[0m'[0m'[0m.[0m.[0m.[0m.[0m.[0m.[0m.[0m.[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m.[0m [0m [0m [0m [0m [0m
|
||||||
|
[0m [0m [0m [0m [0m [0m [0m'[0m'[0m'[0m'[0m'[0m'[0m.[0m.[0m.[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m [0m [0m [0m [0m [0m [0m
|
||||||
|
[0m [0m [0m [0m [0m [0m [0m [0m [0m.[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m'[0m.[0m [0m [0m [0m [0m [0m [0m [0m [0m
|
29
molly.conf
Normal file
29
molly.conf
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
## Basic settings
|
||||||
|
#
|
||||||
|
Port = 1965
|
||||||
|
Hostname = "p.projectsegfau.lt"
|
||||||
|
CertPath = "/etc/ssl/ssl/fullchain.pem"
|
||||||
|
KeyPath = "/etc/ssl/ssl/privkey.pem"
|
||||||
|
DocBase = "/var/gemini/p.projectsegfau.lt"
|
||||||
|
HomeDocBase = "users"
|
||||||
|
GeminiExt = "gmi"
|
||||||
|
DefaultLang = "en"
|
||||||
|
AccessLog = "/var/log/molly/access.log"
|
||||||
|
ErrorLog = "/var/log/molly/error.log"
|
||||||
|
ReadMollyFiles = true
|
||||||
|
|
||||||
|
DirectorySort = "Time"
|
||||||
|
DirectorySubdirsFirst = true
|
||||||
|
DirectoryReverse = true
|
||||||
|
DirectoryTitles = true
|
||||||
|
|
||||||
|
CGIPaths = [
|
||||||
|
"/var/gemini/p.projectsegfau.lt/cgi-bin",
|
||||||
|
"/var/gemini/p.projectsegfau.lt/*.cgi",
|
||||||
|
"/var/gemini/p.projectsegfau.lt/users/*/cgi-bin/",
|
||||||
|
"/var/gemini/p.projectsegfau.lt/users/*/*.cgi",
|
||||||
|
]
|
||||||
|
|
||||||
|
[MimeOverrides]
|
||||||
|
"atom.xml$" = "application/atom+xml"
|
||||||
|
"rss.xml$" = "application/rss+xml"
|
42
profile
Normal file
42
profile
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
|
||||||
|
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
|
||||||
|
|
||||||
|
if [ "$(id -u)" -eq 0 ]; then
|
||||||
|
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
|
||||||
|
else
|
||||||
|
PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
|
||||||
|
fi
|
||||||
|
export PATH
|
||||||
|
|
||||||
|
if [ "${PS1-}" ]; then
|
||||||
|
if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then
|
||||||
|
# The file bash.bashrc already sets the default PS1.
|
||||||
|
# PS1='\h:\w\$ '
|
||||||
|
if [ -f /etc/bash.bashrc ]; then
|
||||||
|
. /etc/bash.bashrc
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if [ "$(id -u)" -eq 0 ]; then
|
||||||
|
PS1='# '
|
||||||
|
else
|
||||||
|
PS1='$ '
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d /etc/profile.d ]; then
|
||||||
|
for i in /etc/profile.d/*.sh; do
|
||||||
|
if [ -r $i ]; then
|
||||||
|
. $i
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
unset i
|
||||||
|
fi
|
||||||
|
export XDG_RUNTIME_DIR=/run/user/$(id -u)
|
||||||
|
run-parts /etc/dynamic-motd.d/
|
||||||
|
if test -f ~/pass; then
|
||||||
|
printf "You have not removed the password file from your home directory. Save the password locally and remove it from the pubnix with rm -rf ~/pass as soon as possible.\n"
|
||||||
|
fi
|
||||||
|
if [ $(diff /etc/skel/meta-info.toml ~/meta-info.toml | wc -l) -eq "6" ] && $(! test -f ~/.meta-info-nowarn); then
|
||||||
|
printf 'Consider editing your meta-info.toml. You can supress this warning by running `touch ~/.meta-info-nowarn`\n'
|
||||||
|
fi
|
35
skel/.bash_aliases
Normal file
35
skel/.bash_aliases
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
# General
|
||||||
|
alias clear="printf '\033c'" # faster than ncurses clear by a lot
|
||||||
|
alias c='clear'
|
||||||
|
alias bashrc="vim ~/.bashrc && source ~/.bashrc"
|
||||||
|
# LS
|
||||||
|
alias ls='ls --color=auto -FAh'
|
||||||
|
alias ll='ls -l'
|
||||||
|
alias la='ls'
|
||||||
|
alias l.='ls | egrep "^\."'
|
||||||
|
alias l=ls
|
||||||
|
# GREP
|
||||||
|
alias grep='grep --color=auto'
|
||||||
|
alias egrep='egrep --color=auto'
|
||||||
|
alias fgrep='fgrep --color=auto'
|
||||||
|
# GIT
|
||||||
|
alias ga='git add'
|
||||||
|
alias gc='git commit'
|
||||||
|
alias gp='git push'
|
||||||
|
alias lc='fc -nl $HISTCMD'
|
||||||
|
# CADDY
|
||||||
|
alias rc='caddy reload --config ~/Caddyfile'
|
||||||
|
alias ft='caddy fmt --overwrite ~/Caddyfile'
|
||||||
|
alias vt='caddy validate --config ~/Caddyfile'
|
||||||
|
# Navigation
|
||||||
|
alias ..='cd ..'
|
||||||
|
alias ...='cd ../../'
|
||||||
|
alias ....='cd ../../../'
|
||||||
|
alias .....='cd ../../../../'
|
||||||
|
# Readability
|
||||||
|
alias cp="cp -iv"
|
||||||
|
alias mv='mv -iv'
|
||||||
|
alias rm='rm -iv'
|
||||||
|
alias df='df -h'
|
||||||
|
alias free='free -m'
|
||||||
|
alias mkdir='mkdir -pv'
|
7
skel/.bash_logout
Normal file
7
skel/.bash_logout
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# ~/.bash_logout: executed by bash(1) when login shell exits.
|
||||||
|
|
||||||
|
# when leaving the console clear the screen to increase privacy
|
||||||
|
|
||||||
|
if [ "$SHLVL" = 1 ]; then
|
||||||
|
[ -x /usr/bin/clear_console ] && /usr/bin/clear_console -q
|
||||||
|
fi
|
42
skel/.bashrc
Normal file
42
skel/.bashrc
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
# If not running interactively, don't do anything
|
||||||
|
case $- in
|
||||||
|
*i*) ;;
|
||||||
|
*) return;;
|
||||||
|
esac
|
||||||
|
export HISTCONTROL=ignoredups:erasedups
|
||||||
|
export HISTFILESIZE=
|
||||||
|
export HISTSIZE=
|
||||||
|
export HISTTIMEFORMAT="[%F %T] "
|
||||||
|
# Change the file location because certain bash sessions truncate .bash_history file upon close.
|
||||||
|
# http://superuser.com/questions/575479/bash-history-truncated-to-500-lines-on-each-login
|
||||||
|
export HISTFILE=~/.bash_history
|
||||||
|
# Force prompt to write history after every command.
|
||||||
|
# http://superuser.com/questions/20900/bash-history-loss
|
||||||
|
PROMPT_COMMAND="history -a; $PROMPT_COMMAND"
|
||||||
|
|
||||||
|
shopt -s autocd # change to named directory
|
||||||
|
shopt -s cdspell # autocorrects cd misspellings
|
||||||
|
shopt -s cmdhist # save multi-line commands in history as single line
|
||||||
|
shopt -s dotglob
|
||||||
|
shopt -s histappend # do not overwrite history
|
||||||
|
shopt -s expand_aliases # expand aliases
|
||||||
|
shopt -s extglob
|
||||||
|
#ignore upper and lowercase when TAB completion
|
||||||
|
bind "set completion-ignore-case on"
|
||||||
|
|
||||||
|
# colored GCC warnings and errors
|
||||||
|
export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
|
||||||
|
|
||||||
|
if [ -f ~/.bash_aliases ]; then
|
||||||
|
. ~/.bash_aliases
|
||||||
|
fi
|
||||||
|
# enable programmable completion features (you don't need to enable
|
||||||
|
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
|
||||||
|
# sources /etc/bash.bashrc).
|
||||||
|
if ! shopt -oq posix; then
|
||||||
|
if [ -f /usr/share/bash-completion/bash_completion ]; then
|
||||||
|
. /usr/share/bash-completion/bash_completion
|
||||||
|
elif [ -f /etc/bash_completion ]; then
|
||||||
|
. /etc/bash_completion
|
||||||
|
fi
|
||||||
|
fi
|
28
skel/.profile
Normal file
28
skel/.profile
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
# ~/.profile: executed by the command interpreter for login shells.
|
||||||
|
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
|
||||||
|
# exists.
|
||||||
|
# see /usr/share/doc/bash/examples/startup-files for examples.
|
||||||
|
# the files are located in the bash-doc package.
|
||||||
|
|
||||||
|
# the default umask is set in /etc/profile; for setting the umask
|
||||||
|
# for ssh logins, install and configure the libpam-umask package.
|
||||||
|
#umask 022
|
||||||
|
|
||||||
|
# if running bash
|
||||||
|
if [ -n "$BASH_VERSION" ]; then
|
||||||
|
# include .bashrc if it exists
|
||||||
|
if [ -f "$HOME/.bashrc" ]; then
|
||||||
|
. "$HOME/.bashrc"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# set PATH so it includes user's private bin if it exists
|
||||||
|
if [ -d "$HOME/bin" ] ; then
|
||||||
|
PATH="$HOME/bin:$PATH"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# set PATH so it includes user's private bin if it exists
|
||||||
|
if [ -d "$HOME/.local/bin" ] ; then
|
||||||
|
PATH="$HOME/.local/bin:$PATH"
|
||||||
|
fi
|
||||||
|
. "$HOME/.prompt"
|
57
skel/.prompt
Normal file
57
skel/.prompt
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
__sig() {
|
||||||
|
# Giant switch case for getting the name of the signal (`kill -l`)
|
||||||
|
a=0
|
||||||
|
for i in $@; do
|
||||||
|
a=$((a+1))
|
||||||
|
case $i in
|
||||||
|
126) printf ACCES ;;
|
||||||
|
127) printf NOENT ;;
|
||||||
|
129) printf HUP ;;
|
||||||
|
130) printf INT ;;
|
||||||
|
131) printf QUIT ;;
|
||||||
|
132) printf ILL ;;
|
||||||
|
133) printf TRAP ;;
|
||||||
|
134) printf ABRT ;;
|
||||||
|
135) printf BUS ;;
|
||||||
|
136) printf FPE ;;
|
||||||
|
137) printf KILL ;;
|
||||||
|
138) printf USR1 ;;
|
||||||
|
139) printf SEGV ;;
|
||||||
|
140) printf USR2 ;;
|
||||||
|
141) printf PIPE ;;
|
||||||
|
142) printf ALRM ;;
|
||||||
|
143) printf TERM ;;
|
||||||
|
144) printf STKFLT ;;
|
||||||
|
145) printf CHLD ;;
|
||||||
|
146) printf CONT ;;
|
||||||
|
147) printf STOP ;;
|
||||||
|
148) printf TSTP ;;
|
||||||
|
149) printf TTIN ;;
|
||||||
|
150) printf TTOU ;;
|
||||||
|
151) printf URG ;;
|
||||||
|
152) printf XCPU ;;
|
||||||
|
153) printf XFSZ ;;
|
||||||
|
154) printf VTALRM ;;
|
||||||
|
155) printf PROF ;;
|
||||||
|
156) printf WINCH ;;
|
||||||
|
157) printf IO ;;
|
||||||
|
158) printf PWR ;;
|
||||||
|
159) printf SYS ;;
|
||||||
|
16[3-9]|1[7-8][0-9]|19[0-2]) printf RT$(($i-128)) ;; # Savagery
|
||||||
|
*) printf $i ;; # Print exit code if not in list
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
}
|
||||||
|
sig() {
|
||||||
|
PLC=(${PIPESTATUS[@]})
|
||||||
|
printf "$(__sig ${PLC[@]})"
|
||||||
|
}
|
||||||
|
NO_COLOUR="\[\033[0m\]"
|
||||||
|
# Bold Colours
|
||||||
|
RED="\[\033[01;31m\]"
|
||||||
|
GREEN="\[\033[01;32m\]"
|
||||||
|
YELLOW="\[\033[01;33m\]"
|
||||||
|
BLUE="\[\033[01;34m\]"
|
||||||
|
|
||||||
|
PS1="[${RED}\$(sig)${NO_COLOUR}] [\t] [${RED}\u${NO_COLOUR}@${GREEN}\h${NO_COLOUR}|${BLUE}\w${NO_COLOUR}] [${YELLOW}#\#${NO_COLOUR}] ${GREEN}\$ ${NO_COLOUR}"
|
||||||
|
|
20
skel/Caddyfile
Normal file
20
skel/Caddyfile
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
admin unix//home/REPLACEME/.caddy-admin.sock
|
||||||
|
order cgi before respond
|
||||||
|
}
|
||||||
|
http://REPLACEME.p.projectsegfau.lt {
|
||||||
|
bind unix/.webserver.sock
|
||||||
|
root * /home/REPLACEME/public_html
|
||||||
|
try_files {path}.html {path}.php {path}.htm {path} {path}/ =404
|
||||||
|
file_server
|
||||||
|
encode gzip
|
||||||
|
templates
|
||||||
|
php_fastcgi unix//run/php/php-fpm.sock
|
||||||
|
cgi /*.cgi /home/REPLACEME/public_html{path}
|
||||||
|
cgi /*.py /home/REPLACEME/public_html{path}
|
||||||
|
cgi /*.sh /home/REPLACEME/public_html{path}
|
||||||
|
cgi /*.pl /home/REPLACEME/public_html{path}
|
||||||
|
cgi /*.lua /home/REPLACEME/public_html{path}
|
||||||
|
cgi /*.bash /home/REPLACEME/public_html{path}
|
||||||
|
cgi /cgi-bin/* /home/REPLACEME/public_html{path}
|
||||||
|
}
|
8
skel/meta-info.toml
Normal file
8
skel/meta-info.toml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
fullname = ""
|
||||||
|
gemini = "p.projectsegfau.lt/~REPLACEME"
|
||||||
|
website = "https://REPLACEME.p.projectsegfau.lt"
|
||||||
|
description = ""
|
||||||
|
email = ""
|
||||||
|
matrix = ""
|
||||||
|
fediverse = ""
|
||||||
|
location = ""
|
19
skel/public_html/index.html
Normal file
19
skel/public_html/index.html
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<!--Yo! If you're not happy with this message, or have no idea how to get rid of it, please contact us on Matrix at #pubnix:projectsegfau.lt!-->
|
||||||
|
<!--(◕ ‿ ◕ ✿)-->
|
||||||
|
<head>
|
||||||
|
<title>This site is empty - Project Segfault Pubnix</title>
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
font-family: -apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif;
|
||||||
|
background-color: #151515;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>This site is currently empty!</h1>
|
||||||
|
<p>The user who owns this usersite has not bothered filling out their website yet. If you own this site, you can edit this message in <code>index.html</code> in <code>~/public_html</code> in your Pubnix user.</p>
|
||||||
|
</body>
|
||||||
|
</html>
|
8
soju/config
Normal file
8
soju/config
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
db sqlite3 /var/soju/main.db
|
||||||
|
message-store db
|
||||||
|
listen ircs://
|
||||||
|
tls /etc/ssl/ssl/fullchain.pem /etc/ssl/ssl/privkey.pem
|
||||||
|
hostname p.projectsegfau.lt
|
||||||
|
listen unix+admin:///var/soju/admin.sock
|
||||||
|
enable-user-on-auth true
|
||||||
|
auth pam
|
Loading…
Reference in New Issue
Block a user