diff --git a/serviceinfo/README.md b/serviceinfo/README.md deleted file mode 100644 index eb20da7..0000000 --- a/serviceinfo/README.md +++ /dev/null @@ -1,4 +0,0 @@ -# ServiceInfo generator - -ServiceInfo is a JSON format for publishing meta-data about fediverse-related -services available on a DNS domain. diff --git a/serviceinfo/template-serviceinfo.json b/serviceinfo/template-serviceinfo.json deleted file mode 100644 index 3d7c4a1..0000000 --- a/serviceinfo/template-serviceinfo.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "version": "1.0", - "id": "https://xmpp.chapril.org/", - "name": "Messagerie instantanée Chapril", - "classifiers": ["xmpp", "instant-messaging"], - "software": { - "name": "ejabberd", - "version": "__EJABBERD_VERSION__", - "repository": "https://github.com/processone/ejabberd/" - }, - "organization": { - "name": "Chapril", - "contact": "https://www.chapril.org/contact.html" - }, - "protocols": [ - { - "name": "xmpp", - "capabilities": [ - { - "presence": true, - "mam": true, - "in-band-registration": true, - "web-registration": false, - "storage-quota": "__USER_QUOTA__", - "upload-autovaccum": "__UPLOAD_RETENTION__", - "irc-gateway": false - } - ] - } - ], - "otherServices": { - "outbound": [ - "irc" - ], - "inbound": [] - }, - "signups": "open", - "visibilityPreferences": { - "allowCrawling": true, - "preferUnlisted": false - }, - "metrics": [ - { - "type": "totalUsers", - "value": __TOTAL_USER_ACCOUNTS__ - }, - { - "type": "activeUsers", - "value": __ACTIVE_USER_WEEK__, - "periodLength": 604800, - "startTime": "__STARTTIME_WEEK__" - }, - { - "type": "activeUsers", - "value": __ACTIVE_USER_MONTH__, - "periodLength": 2592000, - "startTime": "__STARTTIME_MONTH__" - }, - { - "type": "activeUsers", - "value": __ACTIVE_USER_HALFYEAR__, - "periodLength": 15552000, - "startTime": "__STARTTIME_HALFYEAR__" - }, - { - "type": "localMessages", - "value": 60640 - } - ], - "features": [ - { - "name": "Movim", - "type": "UI", - "description": "Web-based XMPP client" - }, - { - "name": "biboumi", - "type": "gateway", - "description": "XMPP->IRC gateway" - } - ] -} diff --git a/serviceinfo/update_serviceinfo b/serviceinfo/update_serviceinfo deleted file mode 100755 index 0331e6b..0000000 --- a/serviceinfo/update_serviceinfo +++ /dev/null @@ -1,76 +0,0 @@ -#! /bin/bash - -TEMPLATE=/srv/xmpp.chapril.org/tools/serviceinfo/template-serviceinfo.json -TARGET_FILE=/srv/xmpp.chapril.org/experimental/serviceinfo.json - -main() { - cat "${TEMPLATE}" \ - | sed "s/__USER_QUOTA__/$(get_hard_quota)/" \ - | sed "s/__UPLOAD_RETENTION__/1y/" \ - | sed "s/__TOTAL_USER_ACCOUNTS__/$(count_user_accounts)/" \ - | sed "s/__EJABBERD_VERSION__/$(get_ejabberd_version)/" \ - | sed "s/__STARTTIME_WEEK__/$(starttime 7)/" \ - | sed "s/__STARTTIME_MONTH__/$(starttime 30)/" \ - | sed "s/__STARTTIME_HALFYEAR__/$(starttime 180)/" \ - | sed "s/__ACTIVE_USER_WEEK__/$(user_activity 7)/" \ - | sed "s/__ACTIVE_USER_MONTH__/$(user_activity 30)/" \ - | sed "s/__ACTIVE_USER_HALFYEAR__/$(user_activity 180)/" \ - | sed "s/__POSTS_COUNT__/$(count_archived_messages)/" \ - > ${TARGET_FILE} -# | sed "s/__AVG_DISK_USED_PER_USER__/$(TODO)/" \ -} - -get_ejabberd_version() { - dpkg -l ejabberd | grep ejabberd | awk '{print $3}' -} - -count_user_accounts() { - # exclude special accounts like r.giskard (for compliance tester) an bart and lisa for testing. - sudo -u ejabberd ejabberdctl registered_users chapril.org | egrep -v -e 'r\.giskard' -e '(lisa|bart)\.simpson' | wc -l -} - -get_hard_quota() { - grep hard_quota /etc/ejabberd/ejabberd.yml -A2 | grep all | sed -r 's/^\s*-\s([0-9]+).*/\1/' -} - -per_account_storage_usage() { - STORAGE_DIR="/srv/ejabberd/chapril.org/upload/" - # TODO Directories to ignore because they are used for tests accounts (bart and lisa simpsons) - IGNORE_DIRS="35eae3ddc83d72e4d3fad3160a400db688d7d936 9be859c77649f33d207cbe0d74a126b2fd31cb33" - - echo "Per user disk usage:" - tmp="$(du -sh ${STORAGE_DIR}* | sort -hr | awk '{print $1}')" - echo "** Max: "$(echo "${tmp}" | head -n 1) -# echo " Min: "$(echo "${tmp}" | tail -n 1) - - subfolders_count=$(find ${STORAGE_DIR} -mindepth 1 -maxdepth 1 -type d | wc -l) - total_size=$(du -s ${STORAGE_DIR} | awk '{print $1}') - avg=$(((${total_size} / 1024) / ${subfolders_count})) - echo "** Avg: ${avg}M" -} - -starttime() { - days_back=${1:-30} - date -u +%Y-%m-%dT%H:%M:%SZ --date="08:42 ${days_back} days ago" -} - -user_activity() { - days_back=${1:-30} - sql="select count(distinct l.username) - from last l - where to_timestamp(cast(l.seconds as int)) > current_timestamp - interval '${days_back} days' - and username not in ('r.giskard', 'lisa.simpson', 'bart.simpson')" - - psql -U ejabberd -h localhost ejabberd -c "${sql}" -t | grep -v '^$' | awk '{print $1}' -} - -count_archived_messages() { - sql="select count(*) - from archive - where peer not like 'irc%' - and username not in ('r.giskard', 'lisa.simpson', 'bart.simpson')" - - psql -U ejabberd -h localhost ejabberd -c "${sql}" -t | grep -v '^$' | awk '{print $1}' -} - -main