{"id":17649017,"url":"https://github.com/serverwentdown/fossasia-video","last_synced_at":"2025-03-30T07:42:56.164Z","repository":{"id":149258050,"uuid":"226125731","full_name":"serverwentdown/fossasia-video","owner":"serverwentdown","description":"The FOSSASIA video recording setup","archived":false,"fork":false,"pushed_at":"2020-05-20T02:24:35.000Z","size":2251,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-04-15T01:21:01.431Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://serverwentdown.github.io/fossasia-video/","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/serverwentdown.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-12-05T14:53:26.000Z","updated_at":"2024-06-19T08:29:44.091Z","dependencies_parsed_at":"2023-09-03T09:30:22.866Z","dependency_job_id":null,"html_url":"https://github.com/serverwentdown/fossasia-video","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/serverwentdown%2Ffossasia-video","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/serverwentdown%2Ffossasia-video/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/serverwentdown%2Ffossasia-video/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/serverwentdown%2Ffossasia-video/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/serverwentdown","download_url":"https://codeload.github.com/serverwentdown/fossasia-video/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246290581,"owners_count":20753724,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-23T11:23:29.855Z","updated_at":"2025-03-30T07:42:56.144Z","avatar_url":"https://github.com/serverwentdown.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# fossasia-video\n\nThe experimental FOSSASIA video recording setup\n\nLooking for the video recorder's guide? The collaborative version is [on Google Docs](https://docs.google.com/document/d/1LWKt0kXWGVuPHCLvBBH35frJFtfhQuNIZ7DSS2HNLZI/edit) and a [PDF is available in this repository](cheatsheet.pdf).\n\nThere is also the [video equipment sheet](https://docs.google.com/spreadsheets/d/1XLckJRG4ng2NoOfqy-EKca2LJdfC-Z6zfE6Q3FqKoM0/edit)\n\n## Overview\n\n## Installing Debian\n\nFor the recording machines, get a fresh copy of Debian, and install it with the following settings:\n\n- Keyboard: American\n- Username: opentech\n- Hostname: model-increment\n  - Example: x220-01\n- Add GNOME Desktop\n- Add OpenSSH Server\n- Leave Print \u0026 System Utilities enabled\n\nIf a GNOME Desktop and SSH daemon is already installed, a reinstall is not required but recommended. \n\n## WireGuard\n\nTo set up the overlay WireGuard network to manage machines everywhere, a server needs to be set up. [`wireguard-negotiator`](https://github.com/serverwentdown/wireguard-negotiator) is a tool written to automate some of the key exchange, that must be run on a publicly accessible server as root:\n\n```\n# Create WireGuard interface\nip link add dev wg1 type wireguard\nip addr add fd11:f055:a514:0000::1/64 dev wg1\n# Configure the interface once. Assumes the configuration file exists\n# See WireGuard docs on how to write this configuraion file\nwg setconf wg1 /etc/wireguard/wg1.conf\n# Bring up the interface\nip link set wg1 up\nwireguard-negotiator server -i wg1 -e [hostname] -l :8080 -I -B\n```\n\nOn every recording machine, the client can be easily configured like so:\n\n```\n# For now, we have to manually install WireGuard\necho \"deb http://deb.debian.org/debian/ unstable main\" | sudo tee /etc/apt/sources.list.d/unstable.list\nprintf 'Package: *\\nPin: release a=unstable\\nPin-Priority: 90\\n' | sudo tee /etc/apt/preferences.d/limit-unstable\nsudo apt update\nsudo apt install wireguard\n# TODO: validate this section\nsudo systemctl enable --now systemd-networkd\nwget -O wgn http://[hostname]:8080\nchmod +x wgn\nsudo ./wgn request -s http://[hostname]:8080\n```\n\n## Configuring Rooms\n\nTo specify the room for a specific host, do the following:\n\n```\necho the_room_id \u003e ~opentech/room_id\necho teh_room_type \u003e ~opentech/room_type\n# Example for Event Hall 2-1:\necho EH2 \u003e ~opentech/room_type\necho EH2-1 \u003e ~opentech/room_id\n```\n\nSee the [Video Equipment Google Sheet](https://docs.google.com/spreadsheets/d/1XLckJRG4ng2NoOfqy-EKca2LJdfC-Z6zfE6Q3FqKoM0/edit?usp=sharing) for the specific IDs. To get edit access, DM @serverwentdown on Telegram. \n\nThis step is optional. This and the following steps should be done for every change in room or setup of the laptop.\n\n## Exporting Hosts\n\nExport all hosts on the overlay network from WireGuard configuration:\n\n```\nwireguard-negotiator dump \u003e wireguard.list\n```\n\nThis list of IPs can be exported into our Ansible hosts format as such:\n\n```\ngo run event-generate.go opentech \u003c wireguard.list \u003e event\n```\n\nThe script `event-fetch-generate.sh` does the exporting and generating of the `event` inventory.\n\n## Running Playbooks\n\nBefore running any Playbooks, switch to SSH authentication:\n\n```\nansible-playbook -Kf 8 -kc paramiko -i event ssh-key.yml\nansible -Kf 8 -kc paramiko -b -i event all -a reboot\n```\n\nNow, plays can be run like so:\n\n```\nansible-playbook -Kf 4 -i [inventory] [playbook]\n# Example:\nansible-playbook -Kf 4 -i event recorders.yml\nansible-playbook -Kf 4 -i event recorders-stop.yml\nansible-playbook -Kf 4 -i event reboot.yml\nansible-playbook -Kf 4 -i event upgrade.yml\n```\n\nAnd run commands like so:\n\n```\nansible -Kf 8 -b -i event all -a 'apt install firmware-iwlwifi'\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fserverwentdown%2Ffossasia-video","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fserverwentdown%2Ffossasia-video","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fserverwentdown%2Ffossasia-video/lists"}