removed werc file for new infra stuff
This commit is contained in:
parent
17143880e1
commit
a49eb81ba2
13 changed files with 255 additions and 28 deletions
9
.gitignore
vendored
9
.gitignore
vendored
|
@ -1,10 +1,5 @@
|
||||||
.DS_Store
|
.DS_Store
|
||||||
.htpasswd
|
.htpasswd
|
||||||
werc/etc/*
|
werc/
|
||||||
scripts/commands.txt
|
scripts/commands.txt
|
||||||
.env
|
.env
|
||||||
gossa/
|
|
||||||
prosody/
|
|
||||||
scripts/
|
|
||||||
transfer/
|
|
||||||
werc/
|
|
|
@ -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" => "")
|
|
||||||
}
|
|
|
@ -1,5 +1,8 @@
|
||||||
$HTTP["host"] =~ "^music\.thirdculture\.top$" {
|
$HTTP["host"] =~ "^music\.thirdculture\.top$" {
|
||||||
index-file.names = ( )
|
index-file.names = ( )
|
||||||
|
url.rewrite-once = (
|
||||||
|
".*" => "/werc.rc"
|
||||||
|
)
|
||||||
server.error-handler-404 = "/werc.rc"
|
server.error-handler-404 = "/werc.rc"
|
||||||
alias.url += ( "/werc.rc" => "/var/www/werc/bin/werc.rc" )
|
alias.url += ( "/werc.rc" => "/var/www/werc/bin/werc.rc" )
|
||||||
cgi.assign += ( ".rc" => "")
|
cgi.assign += ( ".rc" => "")
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
$HTTP["host"] =~ "^ppl\.thirdculture\.top$" {
|
$HTTP["host"] =~ "^ppl\.thirdculture\.top$" {
|
||||||
index-file.names = ( )
|
index-file.names = ( )
|
||||||
|
url.rewrite-once = (
|
||||||
|
".*" => "/werc.rc"
|
||||||
|
)
|
||||||
server.error-handler-404 = "/werc.rc"
|
server.error-handler-404 = "/werc.rc"
|
||||||
alias.url += ( "/werc.rc" => "/var/www/werc/bin/werc.rc" )
|
alias.url += ( "/werc.rc" => "/var/www/werc/bin/werc.rc" )
|
||||||
cgi.assign += ( ".rc" => "")
|
cgi.assign += ( ".rc" => "")
|
||||||
|
|
|
@ -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" => "")
|
|
||||||
}
|
|
|
@ -1,5 +1,8 @@
|
||||||
$HTTP["host"] =~ "^thirdculture\.top$" {
|
$HTTP["host"] =~ "^thirdculture\.top$" {
|
||||||
index-file.names = ( )
|
index-file.names = ( )
|
||||||
|
url.rewrite-once = (
|
||||||
|
".*" => "/werc.rc"
|
||||||
|
)
|
||||||
server.error-handler-404 = "/werc.rc"
|
server.error-handler-404 = "/werc.rc"
|
||||||
alias.url += ( "/werc.rc" => "/var/www/werc/bin/werc.rc" )
|
alias.url += ( "/werc.rc" => "/var/www/werc/bin/werc.rc" )
|
||||||
cgi.assign += ( ".rc" => "")
|
cgi.assign += ( ".rc" => "")
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
$HTTP["host"] =~ "^visual\.thirdculture\.top$" {
|
$HTTP["host"] =~ "^visual\.thirdculture\.top$" {
|
||||||
index-file.names = ( )
|
index-file.names = ( )
|
||||||
|
url.rewrite-once = (
|
||||||
|
".*" => "/werc.rc"
|
||||||
|
)
|
||||||
server.error-handler-404 = "/werc.rc"
|
server.error-handler-404 = "/werc.rc"
|
||||||
alias.url += ( "/werc.rc" => "/var/www/werc/bin/werc.rc" )
|
alias.url += ( "/werc.rc" => "/var/www/werc/bin/werc.rc" )
|
||||||
cgi.assign += ( ".rc" => "")
|
cgi.assign += ( ".rc" => "")
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
# {{{ variables
|
# {{{ variables
|
||||||
var.basedir = "/var/www/localhost"
|
var.basedir = "/var/www/werc"
|
||||||
var.logdir = "/var/log/lighttpd"
|
var.logdir = "/var/log/lighttpd"
|
||||||
var.statedir = "/var/lib/lighttpd"
|
var.statedir = "/var/lib/lighttpd"
|
||||||
# }}}
|
# }}}
|
||||||
|
@ -42,21 +42,21 @@ server.modules = (
|
||||||
#setenv.add-response-header = ( "X-Debug" => "true" )
|
#setenv.add-response-header = ( "X-Debug" => "true" )
|
||||||
#debug.log-request-header = "enable"
|
#debug.log-request-header = "enable"
|
||||||
#debug.log-response-header = "enable"
|
#debug.log-response-header = "enable"
|
||||||
# {{{ includes
|
#{{{ includes
|
||||||
include "mime-types.conf"
|
include "mime-types.conf"
|
||||||
# uncomment for cgi support
|
# uncomment for cgi support
|
||||||
include "mod_cgi.conf"
|
include "mod_cgi.conf"
|
||||||
# uncomment for php/fastcgi support
|
# uncomment for php/fastcgi support
|
||||||
# include "mod_fastcgi.conf"
|
# include "mod_fastcgi.conf"
|
||||||
# uncomment for php/fastcgi fpm support
|
# uncomment for php/fastcgi fpm support
|
||||||
# include "mod_fastcgi_fpm.conf"
|
# include "mod_fastcgi_fpm.conf"
|
||||||
# }}}
|
#}}}
|
||||||
|
|
||||||
# {{{ server settings
|
# {{{ server settings
|
||||||
server.username = "lighttpd"
|
server.username = "lighttpd"
|
||||||
server.groupname = "lighttpd"
|
server.groupname = "lighttpd"
|
||||||
|
|
||||||
server.document-root = var.basedir + "/htdocs"
|
server.document-root = var.basedir
|
||||||
server.pid-file = "/run/lighttpd.pid"
|
server.pid-file = "/run/lighttpd.pid"
|
||||||
|
|
||||||
server.errorlog = "/dev/pts/0"
|
server.errorlog = "/dev/pts/0"
|
||||||
|
@ -64,8 +64,7 @@ server.errorlog = "/dev/pts/0"
|
||||||
# log errors to syslog instead
|
# log errors to syslog instead
|
||||||
# server.errorlog-use-syslog = "enable"
|
# server.errorlog-use-syslog = "enable"
|
||||||
|
|
||||||
server.indexfiles = ("index.php", "index.html",
|
server.indexfiles = ("index.php", "index.html", "index.htm", "default.htm")
|
||||||
"index.htm", "default.htm")
|
|
||||||
|
|
||||||
# server.tag = "lighttpd"
|
# server.tag = "lighttpd"
|
||||||
|
|
||||||
|
@ -319,12 +318,12 @@ url.access-deny = ("~", ".inc")
|
||||||
#
|
#
|
||||||
# }}}
|
# }}}
|
||||||
|
|
||||||
# {{{ debug
|
#{{{ debug
|
||||||
# debug.log-request-header = "enable"
|
# debug.log-request-header = "enable"
|
||||||
# debug.log-response-header = "enable"
|
# debug.log-response-header = "enable"
|
||||||
# debug.log-request-handling = "enable"
|
# debug.log-request-handling = "enable"
|
||||||
# debug.log-file-not-found = "enable"
|
# debug.log-file-not-found = "enable"
|
||||||
# }}}
|
#}}}
|
||||||
|
|
||||||
# vim: set ft=conf foldmethod=marker et :
|
# vim: set ft=conf foldmethod=marker et :
|
||||||
include "/etc/lighttpd/conf.d/*.conf"
|
include "/etc/lighttpd/conf.d/*.conf"
|
2
scripts/.gitignore
vendored
Normal file
2
scripts/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
commands.txt
|
||||||
|
.env
|
38
scripts/actual_jank.sh
Executable file
38
scripts/actual_jank.sh
Executable 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
58
scripts/add_person.sh
Executable 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
35
scripts/add_web_person.rc
Normal 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
100
scripts/onboard.sh
Executable 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 "$@"
|
Loading…
Add table
Add a link
Reference in a new issue