diff options
| author | Sacha Chua <sacha@sachachua.com> | 2026-05-02 11:42:14 -0400 |
|---|---|---|
| committer | Sacha Chua <sacha@sachachua.com> | 2026-05-02 11:42:22 -0400 |
| commit | 440acbe0971df6bd1451d92e1a2ee1bc986f6061 (patch) | |
| tree | 13deb4289bd8896a889f6bc3fb03e8c34e0c604e | |
| parent | 8df1b195e7c7a8bcea44a7e877b04d6e228ce820 (diff) | |
| download | emacsconf-wiki-440acbe0971df6bd1451d92e1a2ee1bc986f6061.tar.xz emacsconf-wiki-440acbe0971df6bd1451d92e1a2ee1bc986f6061.zip | |
add note about meetups
| -rw-r--r-- | organizers-notebook.md | 310 | ||||
| -rw-r--r-- | organizers-notebook/index.org | 106 |
2 files changed, 372 insertions, 44 deletions
diff --git a/organizers-notebook.md b/organizers-notebook.md index 3cdcda26..f9a7dbde 100644 --- a/organizers-notebook.md +++ b/organizers-notebook.md @@ -22,7 +22,7 @@ This document is the general organizers' notebook that can be used as a starting - [Draft CFP](#phases-and-lessons-learned-draft-cfp) - [Announce](#phases-and-lessons-learned-announce) - [Process proposals](#phases-and-lessons-learned-process-proposals) - - [Accept proposals](#phases-and-lessons-learned-accept-proposals):email: + - [Accept proposals](#phases-and-lessons-learned-accept-proposals) - [Draft schedule](#draft-schedule) - [Set up backstage and upload](#phases-and-lessons-learned-set-up-backstage-and-upload) - [Post the schedule](#phases-and-lessons-learned-post-the-schedule) @@ -39,37 +39,38 @@ This document is the general organizers' notebook that can be used as a starting - [Linode instance sizes](#general-infrastructure-linode-instance-sizes) - [File uploads](#upload) - [Media processing](#general-infrastructure-media-processing) - - [Wiki](#org7f83d48) + - [Wiki](#general-infrastructure-wiki) - [Icecast](#icecast) - [Watching pages](#watch) - [VNC](#vnc) - [Streaming with OBS](#obs) - - [Mumble](#org09cd092) + - [Mumble](#general-infrastructure-mumble) - [Shell scripts](#general-infrastructure-shell-scripts) - [Backstage](#backstage) - [Thelounge IRC web client](#general-infrastructure-irc-web-client) - [Etherpad](#general-infrastructure-etherpad) - [Publishing media to the server and to the wiki](#media) - - [Automated publishing to the media server](#orgc40bf50) + - [Automated publishing to the media server](#general-infrastructure-automated-publishing-to-the-media-server) - [Automated IRC announcements](#general-infrastructure-automated-irc-announcements) - [BigBlueButton](#bbb) - [Manual IRC announcements](#general-infrastructure-manual-irc-announcements) - - [Check test crontab](#orgc7d6d2a) + - [Check test crontab](#general-infrastructure-check-test-crontab) - [Confirm automated IRC announcements from res](#general-infrastructure-confirm-automated-irc-announcements-from-res) - [Low-res stream](#general-infrastructure-low-res-stream) - [Upload talks to YouTube](#general-infrastructure-upload-talks-to-youtube) - [Restream to YouTube](#general-infrastructure-restream-to-youtube) - - [Restream to Toobnix](#orgdc911e7) - - [i3 window manager](#org692ea98) + - [Restream to Toobnix](#general-infrastructure-restream-to-toobnix) + - [i3 window manager](#general-infrastructure-i3-window-manager) - [Other process notes](#other) - [Adding another user to BBB](#bbb-user) - - [Schedule changes](#org5f8f6b0) + - [Schedule changes](#other-process-notes-schedule-changes) - [When a talk Q&A changes method](#change-talk-qa) - [To play the other stream](#other-process-notes-to-play-the-other-stream) - - [When a system is down](#other-process-notes-when-a-system-is-down) + - [When a system is down - status page](#other-process-notes-when-a-system-is-down) - [When we need to bring on a last-minute volunteer](#other-process-notes-when-we-need-to-bring-on-a-last-minute-volunteer) - [Checking people in](#other-process-notes-checking-people-in) - [Ansible](#other-process-notes-ansible) + - [Updating a transcript](#other-process-notes-updating-a-transcript) <a id="starting-up-the-conference-planning-process"></a> @@ -486,7 +487,7 @@ Onboarding: emacsconf-mail-intro-to-all -### TODO Record opening remarks +### DONE Record opening remarks ### TODO Send check-in details, schedule update, etc. :email: @@ -498,12 +499,15 @@ emacsconf-mail-intro-to-all - [X] Set emacsconf-publish-include-pads to t. - [X] Republish the schedule and the info pages. - [X] Update the conf.org and the wiki on res. (~/emacsconf-2025-private, ~/emacsconf-wiki) -- [X] Resize the BBB server to production levels with bbb-prod: 16 GB $0.1440/hour 6 CPUs +- [X] Resize the BBB server to production levels with bbb-prod: 16 GB $0.1440/hour 6 CPUs. MANUALLY CHECK DISK SIZE. - [X] Send check-in details and last-minute schedule updates. - [X] Start thelounge on front0: systemctl start thelounge. - [X] Confirm I can connect to Mumble. - [X] Resize front0 to production: front0 shared Linode 32GB 8 CPUs 640GB $0.2880/hour - [X] Resize live0 to production: shared Linode 64GB 16 CPUs $0.5760/hour + - [X] CONFIRM DISK SIZE +- [X] Resize BBB to production + - [X] CONFIRM DISK SIZE - [X] Start the VNC servers. #!/bin/bash @@ -553,6 +557,8 @@ emacsconf-mail-intro-to-all - [X] <https://media.emacsconf.org/2025> has talk files - [X] IRC announcement in #emacsconf-gen - [X] Confirm icecast stats are available: <http://live0.emacsconf.org/admin/stats> (username: admin, password is in prod-vars.yml) +- [X] Generate and check all the crontabs <elisp:emacsconf-stream-crontabs> +- [X] Generate all the hyperlists <a id="conf"></a> @@ -561,15 +567,70 @@ emacsconf-mail-intro-to-all <elisp:emacsconf-pad-open-shift-hyperlist> +VNC connection + +See <https://emacsconf.org/organizers-notebook/#vnc> + +DO NOT RESIZE THE WINDOW + +Manual control + +emacsconf-stream-display-clock-and-countdown + +Shell scripts: + +music + +handle-session <talk-id> (ex: handle-session sat-open) + +plays the intro, the video (if any), and opens the Q&A + +keep an eye on it + +play <talk-id> + +play-with-intro <talk-id> + +handle-qa <talk-id> + +bbb <talk-id> + <a id="phases-and-lessons-learned-after-the-conference"></a> ## After the conference -### Capture stats +### DONE Capture stats + +<http://live0.emacsconf.org:8001/status.xsl> + + +#### 2025 stats + +Saturday: +gen: 107 + 7 lowres +dev: 97 peak + 7 peak lowres + +Sunday: I forgot to copy icecast stats; maybe 70 peak on gen? + +Sunday: + +- res: + - %Cpu(s): 60.0 us, 6.7 sy, 0.0 ni, 33.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st + - MiB Mem : 48118.6 total, 15679.4 free, 7338.2 used, 26465.2 buff/cache +- bbb: + - CPU%: 3.0 us, 4.0 sy, 3.0 ni, 89.1 id, 0.0 wa, 0.0 hi, 1.0 si, 0.0 st + - Mem: 15988.8 total, 1450.0 free, 3552.0 used, 10986.9 buff/cache +- front: + - %Cpu(s): 2.4 us, 1.6 sy, 0.0 ni, 96.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st + - MiB Mem : 32169.5 total, 28072.2 free, 1257.1 used, 2840.2 buff/cache +- live: + - %Cpu(s): 7.5 us, 8.7 sy, 0.0 ni, 83.3 id, 0.0 wa, 0.0 hi, 0.4 si, 0.0 st + - MiB Mem : 64423.9 total, 56727.6 free, 797.6 used, 6898.8 buff/cache + -2024 stats +#### 2024 stats Saturday: gen: 177 peak + 14 peak lowres @@ -588,19 +649,24 @@ res peak 81.54% total CPU (each OBS ~250%), mem 7GB used so far we have used 1.2TB of transfer this month -### Back up the data +### DONE Back up the data -#### Icecast +#### Etherpad -rsync -avze ssh live:’/data/emacsconf-2024-\*’ media:~/2024 +<elisp:emacsconf-pad-backup-talks> -rsync -avze ssh live:’/data/emacsconf-2024-\*’ . +This creates –pad.html and –pad.md in the cache. + + +#### Icecast + +rsync -avzue ssh live:’/data/emacsconf-2025-\*’ ~/proj/emacsconf/2025/backups #### BigBlueButton -rsync -avze ssh root@bbb:/var/bigbluebutton/ bigbluebutton/ +rsync -avze ssh root@bbb:/var/bigbluebutton/ bbb/ ssh root@66.175.208.243 ’dd if=/dev/sda bs=5M ’ | dd of=bbb-img-2024-12-08.img status=progress @@ -643,12 +709,28 @@ cd test - Copy IRC logs to cache and therefore to backstage: (ex: 2024-12-07-emacsconf-gen.txt) -### Combine the IRC logs and the pads, and add them to the wiki +### DONE Resize the server disks + +SSH and use df to check first. Needs to fit under these limits: + +- [X] front0: 25 GB + - [X] disk + - [X] server resized to Nanode 1 GB +- [X] live0: 25 GB + - [X] disk + - [X] server resized to Nanode 1 GB +- [X] bbb: 25 GB + - [X] disk + - [X] server resized to Nanode 1 GB + +Shut down the servers after backing up. -(did we e-mail the speakers before or after?) +1. In the Linode console, click on the linode. +2. Go to Storage. +3. Use the 3-dot menu on Debian 10 disk to reisze. -### Process the Q&A recordings and live presentations +### DONE Process the Q&A recordings and live presentations; upload to YouTube - Save answers videos as –answers.webm. - From the pad file: emacsconf-extract-copy-pad-to-wiki @@ -662,16 +744,116 @@ Indexing - emacsconf-extract-insert-note-with-question-heading - emacsconf-subed-make-chapter-file-based-on-comments +- emacsconf-subed-copy-current-chapter-text - change status to `TO_CAPTION_QA` Also copy the YouTube comments and IRC comments emacsconf-extract-irc-anonymize-log +answers–backstage–split.txt +answers–backstage–split.vtt + +subed-shift-subtitles-to-start-at-timestamp + +ffmpeg -i –answers–backstage–reencoded.webm -ss START-TIME -to END-TIME –answers–backstage–trimmed.webm +ffmpeg -i –answers–backstage–trimmed.opus + +Open –answers–backstage–trimmed.opus in Audacity. Select all the audio with Ctrl+A. Use Filter - Effect - Volume and Compression to normalize it to -16 LUFS. Export to –answers–backstage–normalized.opus + +Use <https://studio.youtube.com> to upload the video. +Use emacsconf-publish-answers-description to get the answer description, and move the title (and possibly the speaker name) to the video title. +Add the video to the playlist. +Set the `QA_YOUTUBE_URL` property. + +Play the preview and jump around to different points in the video to check if there are encoding errors. + + +### DONE Upload videos and Q&A sessions to Toobnix + +Install peertube-cli. + +emacsconf-extract-toobnix-api-setup + +emacsconf-publish-toobnix-upload-all +emacsconf-publish-toobnix-upload-all-captions + +Manually add to and reorganize the playlist as needed. (Automate this someday?) + + +#### Fix incorrect Toobnix URLs + + (dolist (talk (emacsconf-get-talk-info)) + (when (plist-get talk :toobnix-url) + (message "%s" (plist-get talk :slug)) + (emacsconf-with-talk-heading talk + (org-entry-put (point) "TOOBNIX_URL" (emacsconf-extract-toobnix-latest-video-url (emacsconf-publish-talk-video-properties talk 'toobnix))) + (when (plist-get talk :qa-toobnix-url) + (org-entry-put (point) "QA_TOOBNIX_URL" (emacsconf-extract-toobnix-latest-video-url (emacsconf-publish-answers-video-properties talk 'toobnix))))))) + + +### DONE Copy the Q&A from the pad and add them to the wiki + + +### DONE Copy interesting questions and remarks from IRC to the wiki -### Send thank-you emails to the speakers :email: +Our goal is to copy the discussions from IRC to +the wiki pages so that speakers can see any +questions or feedback they’ve missed. +To copy the logs: -### Notify emacs-discuss that the Q&A is up +1. Use M-x flush-lines to remove any lines with `***`. +2. Copy the IRC logs to the cache directory with a filename like yyyy-mm-dd-channel.txt (ex: 2025-12-07-emacsconf-gen.txt). + +Then review each log. For each talk: + +1. Select the region for the talk. Figure out the speaker’s nick. Use emacsconf-extract-irc-anonymize-log and give it the nick. +2. Use emacsconf-extract-irc: + - t: open the talk in the other window + - UP and DOWN navigate by line. + - q: add the line to the other window as a question. + - a: add the line to the other window as an answer + - c: add the line to the other window + + +### DONE Index the Q&A + +For each talk with a live Q&A session: + +1. Open the pad and the VTT file. +2. Use `C-u M-x subed-word-data-load-from-file` to load the word data JSON with an offset depending on the start time that the video was trimmed to. +3. Use `M-x subed-set-subtitle-comment` or manually add `NOTE` comments. Correct recognition errors along the way. +4. Use `emacsconf-subed-make-chapter-file-based-on-comments` to create the chapter file. +5. Republish with <elisp:emacsconf-publish-public-index> to make sure the chapters show up. +6. Upload the corrected subtitles to the Q&A video on YouTube. +7. Use `emacsconf-publish-answers-description` to get the updated description. Paste it into the YouTube description. +8. Use `emacsconf-publish-info-pages-for-talk` to update the wiki pages for that talk. + + +### DONE Send thank-you emails to the speakers :email: + + +### CANCELLED Copy the Youtube comments to the wiki pages? + +emacsconf-extract-youtube-api-setup +emacsconf-extract-youtube-comments-by-talk + +Better to direct the speakers to the YouTube videos so that they can discuss things directly. + + +### Write a report + +Start with a longer blog post: + +- <https://sachachua.com/blog/2024/12/emacsconf-2024-notes/> + +A shorter version goes on the wiki: + +- <https://emacsconf.org/2024/report/> +- <https://emacsconf.org/2023/report/> + + +### DONE Notify emacsconf-discuss@gnu.org that the Q&A is up <https://lists.gnu.org/archive/html/emacsconf-discuss/2024-12/msg00000.html> @@ -699,11 +881,6 @@ emacsconf-extract-irc-anonymize-log Sacha -### Write a report - -Sample: <https://emacsconf.org/2023/report/> - - ### Send thank-you emails to the volunteers :email: emacsconf-mail-template-ask-volunteer-for-mailing-address @@ -881,7 +1058,7 @@ When a talk comes in: 9. `emacsconf-publish-backstage-index` -<a id="org7f83d48"></a> +<a id="general-infrastructure-wiki"></a> ## Wiki @@ -889,6 +1066,11 @@ Stylesheet: <file://ssh:front|sudo:ikiwiki@front:/var/www/emacsconf.org/style.cs See also Ansible notes +If the wiki is stuck and needs regenerating: + + ssh front0.emacsconf.org + sudo -iu ikiwiki -- ikiwiki --setup ~ikiwiki/emacsconf.setup + <a id="icecast"></a> @@ -1048,7 +1230,7 @@ icecast is on live0.emacsconf.org and can be restarted with `/etc/init.d/emacsco so that the year is updated in the configuration. -<a id="org09cd092"></a> +<a id="general-infrastructure-mumble"></a> ## DONE Mumble @@ -1203,6 +1385,9 @@ On front: - To start: sudo systemctl start thelounge - To stop: sudo systemctl stop thelounge +backup: +sudo -u thelounge /usr/bin/thelounge start + ### DONE Ask libera.chat to increase IRC limits @@ -1250,6 +1435,12 @@ Switching it back to `TO_STREAM` and calling <elisp:emacsconf-publish-media-files-on-change> should remove it. +### Backing up, mirroring + + rsync -avzue ssh media:/var/www/media.emacsconf.org/ /var/www/media.emacsconf.org/ --exclude protected --exclude backstage + rsync -avzue ssh /var/www/media.emacsconf.org/ yang:~/public_html/media.emacsconf.org/ --exclude protected --exclude backstage + + ### DONE Switch public media to unprotected root before the conference :tminustwo: 1. Clear public media directory. @@ -1259,7 +1450,7 @@ Switching it back to `TO_STREAM` and calling You can generate the index with `emacsconf-publish-update-media`. -<a id="orgc40bf50"></a> +<a id="general-infrastructure-automated-publishing-to-the-media-server"></a> ## Automated publishing to the media server @@ -1318,7 +1509,9 @@ Sizes: 2. Update the DNS for bbb.emacsverse.org with its IP address. 3. Download the BBB installer and make it executable. 4. ufw allow 16384:32768/udp -5. Run the BBB installer: `./bbb-install.sh -v jammy-300 -s bbb.emacsverse.org -e emacsconf@sachachua.com -g` +5. Run the BBB installer: + + ./bbb-install.sh -v jammy-300 -s bbb.emacsverse.org -e emacsconf@sachachua.com -g 6. `sudo apt install bbb-playback-video` and then follow the instructions at [Server Customization | BigBlueButton](https://docs.bigbluebutton.org/3.0/administration/customize/#install-additional-recording-processing-formats) . - /usr/local/bigbluebutton/core/scripts/bigbluebutton.yml: @@ -1334,6 +1527,20 @@ Sizes: 7. docker exec -it greenlight-v3 bundle exec rake admin:create[’name’,’email’,’password’] +### Backing up BigBlueButton + +We generally just need to keep the user database. + + docker exec -t postgres pg_dump -U postgres -d greenlight-v3-production > greenlight_backup.sql + + +### Upgrading BigBlueButton + +Rerun the install script: + + ./bbb-install.sh -v jammy-300 -s bbb.emacsverse.org -e emacsconf@sachachua.com -g + + ### System audio limitations Sharing system audio by changing the audio device to “Built-in Audio Analog Stereo” is very choppy, only gets captured in the recording if I’m using Firefox (not Chrome) AND there’s at least one listener, and doesn’t allow simultaneous narration from the speaker. @@ -1381,10 +1588,15 @@ If you don’t see the video format, doublecheck that [the video format is e bbb-record seems to call `ruby /usr/local/bigbluebutton/core/scripts/process/video.rb -m ID`, which might be a useful backup. +bbb-record –rebuild 4dc2c4e5ac5222bc416b7e31d76e22a5627aed5b-1765135929727 +bbb-record –rebuild e5fceca22f037945fb7183e118599cf37598936c-1765131855663 + +derp, no space left on the device, that’s why, adding to checklist -### Backing up BBB :backup: -rsync -avze ssh root@bbb:/var/bigbluebutton/ bigbluebutton/ +### DONE Backing up BBB :backup: + +rsync -avze ssh root@bbb:/var/bigbluebutton/ ~/proj/emacsconf/2025/backups/bbb/ ssh root@bbb ’tar zcvf - /var/bigbluebutton /etc/bigbluebutton /root/greenlight-v3 /usr/local/bigbluebutton /usr/share/bbb-web’ > bbb-backup-$(date “+%Y-%m-%d”).tar.gz @@ -1426,6 +1638,15 @@ Resources: - <https://github.com/bigbluebutton/bigbluebutton/issues/9485> +### Other meetups + +The bbb.emacsverse.org server also hosts a few other meetups throughout the year. This helps people get together using free and open source software, and it also lets us keep the infrastructure set up instead of scrambling to get everything set up and tested a week or two before the conference. Here are the meetups and contact people: + +- [Emacs Berlin](https://emacs-berlin.org) (Til) +- [Emacs APAC](https://emacs-apac.gitlab.io/) (Bhavin Gandhi) +- [OrgMeetup](https://orgmode.org/worg/orgmeetup.html) (Ihor Radchenko) + + <a id="general-infrastructure-manual-irc-announcements"></a> ## TODO Manual IRC announcements @@ -1435,14 +1656,14 @@ Success: - [X] You can /opall, /conftopic, and /broadcast -<a id="orgc7d6d2a"></a> +<a id="general-infrastructure-check-test-crontab"></a> ## Check test crontab <a id="general-infrastructure-confirm-automated-irc-announcements-from-res"></a> -## TODO Confirm automated IRC announcements from res +## DONE Confirm automated IRC announcements from res Success: @@ -1464,7 +1685,7 @@ backup on live: <a id="general-infrastructure-upload-talks-to-youtube"></a> -## Upload talks to YouTube +## DONE Upload talks to YouTube [Channel videos](https://studio.youtube.com/channel/UCwuyodzTl_KdEKNuJmeo99A/videos/upload?filter=%5B%5D&sort=%7B%22columnType%22%3A%22date%22%2C%22sortOrder%22%3A%22DESCENDING%22%7D) @@ -1529,7 +1750,7 @@ Need to have set up shifts first. use `ansible-playbook -i inventory.yml prod-playbook.yml --tags restream` to set up -<a id="orgdc911e7"></a> +<a id="general-infrastructure-restream-to-toobnix"></a> ## Restream to Toobnix @@ -1540,7 +1761,7 @@ Need to have set up shifts first. 2. emacsconf-stream-toobnix-copy-livestream-description -<a id="org692ea98"></a> +<a id="general-infrastructure-i3-window-manager"></a> ## i3 window manager @@ -1563,7 +1784,7 @@ termit is the terminal docker exec -it greenlight-v2 bundle exec rake user:create["USERNAME","EMAIL","PASSWORD","user"] -<a id="org5f8f6b0"></a> +<a id="other-process-notes-schedule-changes"></a> ## Schedule changes @@ -1646,7 +1867,7 @@ Manual steps: <a id="other-process-notes-when-a-system-is-down"></a> -## When a system is down +## When a system is down - status page Let people know in #emacsconf and #emacsconf-org @@ -1680,3 +1901,10 @@ will give them the backstage credentials and links to the index git clone git@git.emacsconf.org:pub/emacsconf-ansible + +<a id="other-process-notes-updating-a-transcript"></a> + +## Updating a transcript + +emacsconf-publish-update-transcript + diff --git a/organizers-notebook/index.org b/organizers-notebook/index.org index aa01046a..cdc62d06 100644 --- a/organizers-notebook/index.org +++ b/organizers-notebook/index.org @@ -459,6 +459,7 @@ elisp:emacsconf-pad-prepopulate-shift-hyperlists CLOSED: [2025-11-28 Fri 21:32] :PROPERTIES: :Effort: 1:00 +:CUSTOM_ID: phases-and-lessons-learned-getting-ready-for-the-conference-check-in-with-speakers-for-cancellations-adjustments :END: :LOGBOOK: CLOCK: [2025-11-21 Fri 11:12]--[2025-11-21 Fri 11:14] => 0:02 @@ -469,6 +470,7 @@ emacsconf-mail-intro-to-all CLOSED: [2025-12-08 Mon 21:37] SCHEDULED: <2025-12-02 Tue> :PROPERTIES: :CREATED: [2025-11-28 Fri 21:32] +:CUSTOM_ID: phases-and-lessons-learned-getting-ready-for-the-conference-record-opening-remarks :END: *** TODO Send check-in details, schedule update, etc. :email: :PROPERTIES: @@ -593,6 +595,9 @@ CLOSED: [2025-12-07 Sun 17:26] :END: http://live0.emacsconf.org:8001/status.xsl **** 2025 stats +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-after-the-conference-capture-stats-2025-stats +:END: Saturday: gen: 107 + 7 lowres @@ -616,6 +621,9 @@ Sunday: - MiB Mem : 64423.9 total, 56727.6 free, 797.6 used, 6898.8 buff/cache **** 2024 stats +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-after-the-conference-capture-stats-2024-stats +:END: Saturday: gen: 177 peak + 14 peak lowres @@ -638,6 +646,9 @@ CLOSED: [2025-12-07 Sun 17:26] :CUSTOM_ID: phases-and-lessons-learned-after-the-conference-back-up-the-data :END: **** Etherpad +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-after-the-conference-back-up-the-data-etherpad +:END: elisp:emacsconf-pad-backup-talks This creates --pad.html and --pad.md in the cache. @@ -699,6 +710,9 @@ cd test - Copy IRC logs to cache and therefore to backstage: (ex: 2024-12-07-emacsconf-gen.txt) *** DONE Resize the server disks CLOSED: [2025-12-07 Sun 17:26] +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-after-the-conference-resize-the-server-disks +:END: SSH and use df to check first. Needs to fit under these limits: - [X] front0: 25 GB @@ -758,6 +772,9 @@ Set the ~QA_YOUTUBE_URL~ property. Play the preview and jump around to different points in the video to check if there are encoding errors. *** DONE Upload videos and Q&A sessions to Toobnix CLOSED: [2025-12-28 Sun 21:27] +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-after-the-conference-upload-videos-and-q-a-sessions-to-toobnix +:END: Install peertube-cli. @@ -767,7 +784,20 @@ emacsconf-publish-toobnix-upload-all emacsconf-publish-toobnix-upload-all-captions Manually add to and reorganize the playlist as needed. (Automate this someday?) +**** Fix incorrect Toobnix URLs +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-after-the-conference-upload-videos-and-q-a-sessions-to-toobnix-fix-incorrect-toobnix-urls +:END: +#+begin_src emacs-lisp :eval no +(dolist (talk (emacsconf-get-talk-info)) + (when (plist-get talk :toobnix-url) + (message "%s" (plist-get talk :slug)) + (emacsconf-with-talk-heading talk + (org-entry-put (point) "TOOBNIX_URL" (emacsconf-extract-toobnix-latest-video-url (emacsconf-publish-talk-video-properties talk 'toobnix))) + (when (plist-get talk :qa-toobnix-url) + (org-entry-put (point) "QA_TOOBNIX_URL" (emacsconf-extract-toobnix-latest-video-url (emacsconf-publish-answers-video-properties talk 'toobnix))))))) +#+end_src *** DONE Copy the Q&A from the pad and add them to the wiki CLOSED: [2025-12-28 Sun 19:34] :PROPERTIES: @@ -775,6 +805,9 @@ CLOSED: [2025-12-28 Sun 19:34] :END: *** DONE Copy interesting questions and remarks from IRC to the wiki CLOSED: [2025-12-28 Sun 19:34] +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-after-the-conference-copy-interesting-questions-and-remarks-from-irc-to-the-wiki +:END: Our goal is to copy the discussions from IRC to the wiki pages so that speakers can see any @@ -799,6 +832,9 @@ Then review each log. For each talk: *** DONE Index the Q&A CLOSED: [2025-12-28 Sun 19:34] +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-after-the-conference-index-the-q-a +:END: For each talk with a live Q&A session: @@ -822,6 +858,9 @@ CLOSED: [2025-12-30 Tue 12:33] SCHEDULED: <2025-12-29 Mon> *** CANCELLED Copy the Youtube comments to the wiki pages? CLOSED: [2025-12-28 Sun 21:27] +:PROPERTIES: +:CUSTOM_ID: phases-and-lessons-learned-after-the-conference-copy-the-youtube-comments-to-the-wiki-pages +:END: emacsconf-extract-youtube-api-setup emacsconf-extract-youtube-comments-by-talk @@ -840,8 +879,8 @@ A shorter version goes on the wiki: - https://emacsconf.org/2024/report/ - https://emacsconf.org/2023/report/ -*** Notify emacsconf-discuss@gnu.org that the Q&A is up -SCHEDULED: <2025-12-29 Mon> +*** DONE Notify emacsconf-discuss@gnu.org that the Q&A is up +CLOSED: [2026-01-03 Sat 11:02] SCHEDULED: <2025-12-29 Mon> :PROPERTIES: :CUSTOM_ID: phases-and-lessons-learned-after-the-conference-notify-emacs-discuss-that-the-q-a-is-up :CREATED: [2025-12-28 Sun 21:27] @@ -1053,6 +1092,9 @@ When a talk comes in: 8. ~emacsconf-publish-cache-video-data~ to save the file size and length. 9. ~emacsconf-publish-backstage-index~ ** Wiki +:PROPERTIES: +:CUSTOM_ID: general-infrastructure-wiki +:END: Stylesheet: file:/ssh:front|sudo:ikiwiki@front:/var/www/emacsconf.org/style.css @@ -1254,6 +1296,7 @@ so that the year is updated in the configuration. CLOSED: [2025-12-01 Mon 12:49] :PROPERTIES: :Effort: 1:00 +:CUSTOM_ID: general-infrastructure-mumble :END: :LOGBOOK: CLOCK: [2025-12-01 Mon 11:25]--[2025-12-01 Mon 12:49] => 1:24 @@ -1394,6 +1437,9 @@ Switching it back to =TO_STREAM= and calling elisp:emacsconf-publish-media-files-on-change should remove it. *** Backing up, mirroring +:PROPERTIES: +:CUSTOM_ID: general-infrastructure-publishing-media-to-the-server-and-to-the-wiki-backing-up-mirroring +:END: #+begin_src sh :eval yes rsync -avzue ssh media:/var/www/media.emacsconf.org/ /var/www/media.emacsconf.org/ --exclude protected --exclude backstage @@ -1414,6 +1460,9 @@ CLOSED: [2025-11-30 Sun 16:52] You can generate the index with =emacsconf-publish-update-media=. ** Automated publishing to the media server +:PROPERTIES: +:CUSTOM_ID: general-infrastructure-automated-publishing-to-the-media-server +:END: =ansible-playbook -i inventory.yml prod-playbook.yml --tags publish,edit= @@ -1475,7 +1524,10 @@ Sizes: 2. Update the DNS for bbb.emacsverse.org with its IP address. 3. Download the BBB installer and make it executable. 4. ufw allow 16384:32768/udp -5. Run the BBB installer: ~./bbb-install.sh -v jammy-300 -s bbb.emacsverse.org -e emacsconf@sachachua.com -g~ +5. Run the BBB installer: + #+begin_src sh :eval no + ./bbb-install.sh -v jammy-300 -s bbb.emacsverse.org -e emacsconf@sachachua.com -g + #+end_src 6. ~sudo apt install bbb-playback-video~ and then follow the instructions at [[https://docs.bigbluebutton.org/3.0/administration/customize/#install-additional-recording-processing-formats][Server Customization | BigBlueButton]] . - /usr/local/bigbluebutton/core/scripts/bigbluebutton.yml: #+begin_example @@ -1491,6 +1543,27 @@ Sizes: - systemctl restart bbb-rap-resque-worker.service 7. docker exec -it greenlight-v3 bundle exec rake admin:create['name','email','password'] +*** Backing up BigBlueButton +:PROPERTIES: +:CUSTOM_ID: general-infrastructure-bigbluebutton-backing-up-bigbluebutton +:END: + +We generally just need to keep the user database. + +#+begin_src sh :eval no :dir "/ssh:bbb:~" +docker exec -t postgres pg_dump -U postgres -d greenlight-v3-production > greenlight_backup.sql +#+end_src + +*** Upgrading BigBlueButton +:PROPERTIES: +:CUSTOM_ID: general-infrastructure-bigbluebutton-upgrading-bigbluebutton +:END: + +Rerun the install script: + +#+begin_src sh :eval no +./bbb-install.sh -v jammy-300 -s bbb.emacsverse.org -e emacsconf@sachachua.com -g +#+end_src *** System audio limitations @@ -1614,6 +1687,17 @@ Resources: - https://overto.eu/posts/gunzip-into-dd/ - https://www.linode.com/community/questions/20386/how-do-i-ssh-to-linode-from-the-finnix-boot-in-order-to-copy-my-local-vm-over-to - https://github.com/bigbluebutton/bigbluebutton/issues/9485 +*** Other meetups +:PROPERTIES: +:CUSTOM_ID: general-infrastructure-bigbluebutton-other-meetups +:END: + +The bbb.emacsverse.org server also hosts a few other meetups throughout the year. This helps people get together using free and open source software, and it also lets us keep the infrastructure set up instead of scrambling to get everything set up and tested a week or two before the conference. Here are the meetups and contact people: + +- [[https://emacs-berlin.org][Emacs Berlin]] (Til) +- [[https://emacs-apac.gitlab.io/][Emacs APAC]] (Bhavin Gandhi) +- [[https://orgmode.org/worg/orgmeetup.html][OrgMeetup]] (Ihor Radchenko) + ** TODO Manual IRC announcements :PROPERTIES: :CUSTOM_ID: general-infrastructure-manual-irc-announcements @@ -1623,6 +1707,9 @@ Success: - [X] You can /opall, /conftopic, and /broadcast ** Check test crontab +:PROPERTIES: +:CUSTOM_ID: general-infrastructure-check-test-crontab +:END: ** DONE Confirm automated IRC announcements from res CLOSED: [2025-12-08 Mon 21:36] SCHEDULED: <2025-11-27 Thu> :PROPERTIES: @@ -1730,10 +1817,14 @@ Need to have set up shifts first. use =ansible-playbook -i inventory.yml prod-playbook.yml --tags restream= to set up ** Restream to Toobnix +:PROPERTIES: +:CUSTOM_ID: general-infrastructure-restream-to-toobnix +:END: *** DONE Set up Toobnix restreaming events CLOSED: [2025-12-05 Fri 18:54] :PROPERTIES: :Effort: 0:30 +:CUSTOM_ID: general-infrastructure-restream-to-toobnix-set-up-toobnix-restreaming-events :END: :LOGBOOK: CLOCK: [2025-11-22 Sat 17:42]--[2025-11-23 Sun 12:15] => 18:33 @@ -1742,6 +1833,9 @@ CLOCK: [2025-11-22 Sat 17:42]--[2025-11-23 Sun 12:15] => 18:33 1. https://toobnix.org, Publish, Permanent/recurring live 2. emacsconf-stream-toobnix-copy-livestream-description ** i3 window manager +:PROPERTIES: +:CUSTOM_ID: general-infrastructure-i3-window-manager +:END: termit is the terminal @@ -1761,6 +1855,9 @@ ssh bbb.emacsverse.org docker exec -it greenlight-v2 bundle exec rake user:create["USERNAME","EMAIL","PASSWORD","user"] #+end_src ** Schedule changes +:PROPERTIES: +:CUSTOM_ID: other-process-notes-schedule-changes +:END: In general: @@ -1882,5 +1979,8 @@ will give them the backstage credentials and links to the index git clone git@git.emacsconf.org:pub/emacsconf-ansible #+end_src ** Updating a transcript +:PROPERTIES: +:CUSTOM_ID: other-process-notes-updating-a-transcript +:END: emacsconf-publish-update-transcript |
