removed werc file for new infra stuff

This commit is contained in:
q 2025-09-23 16:30:57 -04:00
parent 17143880e1
commit a49eb81ba2
13 changed files with 255 additions and 28 deletions

7
.gitignore vendored
View file

@ -1,10 +1,5 @@
.DS_Store
.htpasswd
werc/etc/*
werc/
scripts/commands.txt
.env
gossa/
prosody/
scripts/
transfer/
werc/

View file

@ -1,6 +0,0 @@
$HTTP["host"] =~ "^events\.thirdculture\.top$" {
index-file.names = ( )
server.error-handler-404 = "/werc.rc"
alias.url += ( "/werc.rc" => "/var/www/werc/bin/werc.rc" )
cgi.assign += ( ".rc" => "")
}

View file

@ -1,5 +1,8 @@
$HTTP["host"] =~ "^music\.thirdculture\.top$" {
index-file.names = ( )
url.rewrite-once = (
".*" => "/werc.rc"
)
server.error-handler-404 = "/werc.rc"
alias.url += ( "/werc.rc" => "/var/www/werc/bin/werc.rc" )
cgi.assign += ( ".rc" => "")

View file

@ -1,5 +1,8 @@
$HTTP["host"] =~ "^ppl\.thirdculture\.top$" {
index-file.names = ( )
url.rewrite-once = (
".*" => "/werc.rc"
)
server.error-handler-404 = "/werc.rc"
alias.url += ( "/werc.rc" => "/var/www/werc/bin/werc.rc" )
cgi.assign += ( ".rc" => "")

View file

@ -1,6 +0,0 @@
$HTTP["host"] =~ "^social\.thirdculture\.top$" {
index-file.names = ( )
server.error-handler-404 = "/werc.rc"
alias.url += ( "/werc.rc" => "/var/www/werc/bin/werc.rc" )
cgi.assign += ( ".rc" => "")
}

View file

@ -1,5 +1,8 @@
$HTTP["host"] =~ "^thirdculture\.top$" {
index-file.names = ( )
url.rewrite-once = (
".*" => "/werc.rc"
)
server.error-handler-404 = "/werc.rc"
alias.url += ( "/werc.rc" => "/var/www/werc/bin/werc.rc" )
cgi.assign += ( ".rc" => "")

View file

@ -1,5 +1,8 @@
$HTTP["host"] =~ "^visual\.thirdculture\.top$" {
index-file.names = ( )
url.rewrite-once = (
".*" => "/werc.rc"
)
server.error-handler-404 = "/werc.rc"
alias.url += ( "/werc.rc" => "/var/www/werc/bin/werc.rc" )
cgi.assign += ( ".rc" => "")

View file

@ -4,7 +4,7 @@
###############################################################################
# {{{ variables
var.basedir = "/var/www/localhost"
var.basedir = "/var/www/werc"
var.logdir = "/var/log/lighttpd"
var.statedir = "/var/lib/lighttpd"
# }}}
@ -56,7 +56,7 @@ include "mime-types.conf"
server.username = "lighttpd"
server.groupname = "lighttpd"
server.document-root = var.basedir + "/htdocs"
server.document-root = var.basedir
server.pid-file = "/run/lighttpd.pid"
server.errorlog = "/dev/pts/0"
@ -64,8 +64,7 @@ server.errorlog = "/dev/pts/0"
# log errors to syslog instead
# server.errorlog-use-syslog = "enable"
server.indexfiles = ("index.php", "index.html",
"index.htm", "default.htm")
server.indexfiles = ("index.php", "index.html", "index.htm", "default.htm")
# server.tag = "lighttpd"

2
scripts/.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
commands.txt
.env

38
scripts/actual_jank.sh Executable file
View file

@ -0,0 +1,38 @@
#!/bin/bash
SUBDOMAINS=("thirdculture.top" "ppl.thirdculture.top" "files.thirdculture.top" "up.thirdculture.top"
"events.thirdculture.top" "music.thirdculture.top" "social.thirdculture.top" "visual.thirdculture.top")
HOSTS_FILE="/etc/hosts"
add_subdomains() {
echo "Adding subdomains to /etc/hosts..."
for SUBDOMAIN in "${SUBDOMAINS[@]}"; do
if ! grep -q "$SUBDOMAIN" "$HOSTS_FILE"; then
echo "127.0.0.1 $SUBDOMAIN" | sudo tee -a "$HOSTS_FILE" > /dev/null
echo "Added $SUBDOMAIN to /etc/hosts"
else
echo "$SUBDOMAIN is already in /etc/hosts"
fi
done
}
remove_subdomains() {
echo "Removing subdomains from /etc/hosts..."
for SUBDOMAIN in "${SUBDOMAINS[@]}"; do
sudo sed -i "/$SUBDOMAIN/d" "$HOSTS_FILE"
echo "Removed $SUBDOMAIN from /etc/hosts"
done
}
case "$1" in
add)
add_subdomains
;;
remove)
remove_subdomains
;;
*)
echo "Usage: $0 {add|remove}"
exit 1
;;
esac

58
scripts/add_person.sh Executable file
View file

@ -0,0 +1,58 @@
#!/bin/bash
# Ensure the script is run with exactly two arguments
if [ $# -ne 2 ]; then
echo "Usage: $0 <path> <name>"
exit 1
fi
# Define variables
path="$1"
name="$2"
# Create the folder structure
mkdir -p "$path/$name/_werc" "$path/$name/blog/_werc"
# Create the first config file (not under blog)
cat > "$path/$name/_werc/config" <<EOF
conf_enable_wiki
conf_enable_cssedit $name
wiki_editors_groups=$name
css_file='_werc/style.css'
EOF
# Create the second config file (under blog)
cat > "$path/$name/blog/_werc/config" <<EOF
conf_enable_wiki
conf_enable_blog
conf_blog_only_pull=0
conf_blog_editors=$name
wiki_editors_groups=$name
blogTitle=''
blogDesc=''
EOF
# Create the style.css file
echo "/* Put custom styles here */" > "$path/$name/_werc/style.css"
# Update index.html
index_file="$path/index.html"
if [ -f "$index_file" ]; then
awk -v name="$name" '
{
print
if ($0 ~ /<!-- BUTTONS -->/) {
print " <div class=\"grid-item\">"
print " <a href=\"/" name "/\"><img src=\"/_werc/pub/img/but/" name ".gif\" alt=\"" name "\" /></a>"
print " </div>"
print ""
}
}' "$index_file" > "${index_file}.tmp" && mv "${index_file}.tmp" "$index_file"
echo "Updated index.html with new user entry"
else
echo "Warning: index.html not found at $index_file"
fi
# Output a success message
echo "Folder structure created successfully at $path/$name"

35
scripts/add_web_person.rc Normal file
View file

@ -0,0 +1,35 @@
#!/bin/rc
# Check if the correct number of arguments are provided
if (~ $#argv 2) {
echo "Usage: $0 <path> <name>"
exit 1
}
# Assign arguments to variables
path = $argv[1]
name = $argv[2]
# Create the folder structure
mkdir -p $path/$name/_werc
mkdir -p $path/$name/blog/_werc
# Create the first config file (not under blog)
echo "extraHeaders='<link rel=\"stylesheet\" type=\"text/css\" href=\"_werc/style.css\">'" > $path/$name/_werc/config
echo "conf_enable_wiki" >> $path/$name/_werc/config
echo "conf_enable_cssedit $name" >> $path/$name/_werc/config
echo "css_file='_werc/style.css'" >> $path/$name/_werc/config
echo "" >> $path/$name/_werc/config
# Create the second config file (under blog)
echo "conf_enable_wiki" > $path/$name/blog/_werc/config
echo "conf_enable_blog" >> $path/$name/blog/_werc/config
echo "conf_blog_only_pull=0" >> $path/$name/blog/_werc/config
echo "conf_blog_editors=$name" >> $path/$name/blog/_werc/config
echo "" >> $path/$name/blog/_werc/config
# Create the style.css file
touch $path/$name/_werc/style.css
# Output a success message
echo "Folder structure created successfully at $path/$name"

100
scripts/onboard.sh Executable file
View file

@ -0,0 +1,100 @@
#!/bin/bash
CONFIG_FILE="${CONFIG_FILE:-./.env/onboard.env}"
if [ ! -f "$CONFIG_FILE" ]; then
echo "Error: Configuration file not found at $CONFIG_FILE"
echo "CONFIG_FILE unset or .env/onboard.env does not exist"
exit 1
fi
source "$CONFIG_FILE"
usage() {
cat << EOF
Usage: $0 <username> <mkpasswd_hash> <htpasswd_hash>
Arguments:
username The username for the new account
mkpasswd_hash The hash generated by mkpasswd
htpasswd_hash The hash generated by htpasswd
EOF
exit 1
}
validate_input() {
[ $# -ne 3 ] && usage
[[ ! "$2" =~ ^\$6\$ ]] && echo "Error: Invalid mkpasswd hash format" && exit 1
[[ ! "$3" =~ ^\$apr1\$ ]] && echo "Error: Invalid htpasswd hash format" && exit 1
local required_vars=(
"SSH_USER" "SSH_HOST" "CONTAINER_NAME" "DOMAIN" "SERVICES_URL"
"USER_STRUCTURE_PATH" "WERC_PATH" "HTPASSWD_FILE"
)
for var in "${required_vars[@]}"; do
if [ -z "${!var}" ]; then
echo "Error: Required variable $var is not set in $CONFIG_FILE"
exit 1
fi
done
[ ! -d "$USER_STRUCTURE_PATH" ] && echo "Error: User structure path does not exist: $USER_STRUCTURE_PATH" && exit 1
[ ! -d "$WERC_PATH" ] && echo "Error: Werc path does not exist: $WERC_PATH" && exit 1
}
create_user_structure() {
local username="$1"
local mkpasswd_hash="$2"
local user_path="$USER_STRUCTURE_PATH/$username"
mkdir -p "$user_path"
echo "$mkpasswd_hash" > "$user_path/password"
echo "$username:$3" >> "$HTPASSWD_FILE"
}
setup_werc_structure() {
local username="$1"
./add_person.sh "$WERC_PATH" "$username"
}
generate_invite() {
invite=$(ssh "$SSH_USER@$SSH_HOST" "docker exec $CONTAINER_NAME prosodyctl mod_invites generate $DOMAIN" | tail -n 1)
[ -z "$invite" ] && echo "Error: Failed to generate invite" && exit 1
}
main() {
local username="$1"
local mkpasswd_hash="$2"
local htpasswd_hash="$3"
validate_input "$@"
echo "Setting up user structure..."
create_user_structure "$username" "$mkpasswd_hash" "$htpasswd_hash"
echo "Setting up werc structure..."
setup_werc_structure "$username"
echo "Generating invite..."
generate_invite
cat << EOF
User setup completed successfully!
Username: $username
Services URL: $SERVICES_URL
Invite link: $invite
The following paths have been updated:
- User structure: $USER_STRUCTURE_PATH/$username
- Werc structure: $WERC_PATH/$username
- Password file: $USER_STRUCTURE_PATH/$username/password
- Updated .htpasswd at: $HTPASSWD_FILE
Next steps:
1. Push changes to server
2. Send the services URL and invite link to the user
EOF
}
main "$@"