Some Firefox users may need to log in more than once to log in. It's a known Firefox bug. Check "keep me logged in," it might help.

Es posible que algunxs usuarixs de Firefox tengan que conectarse más de una vez para iniciar sesión. Es un error conocido de Firefox. Marca "keep me logged in" (mantenerme conectado), puede ayudar.


Tech Documentation: Difference between revisions

From Bike Collectives Wiki
(→‎bikecollectives.org: Bringing this closer to current events. :))
m (→‎As of 2023: Actual name of the utility)
 
(6 intermediate revisions by the same user not shown)
Line 16: Line 16:
* lists.bikecollectives.org (MailMan3 email lists, including The ThinkTank)
* lists.bikecollectives.org (MailMan3 email lists, including The ThinkTank)
* RoundCube email  client for tech administrative mail (e.g. DMARC reports)
* RoundCube email  client for tech administrative mail (e.g. DMARC reports)
* Restic backup
* Resticker - automatic restic backups
* PassBolt password manager for administrative logins
* PassBolt password manager for administrative logins
*Apprise - push notifications
*Apprise - push notifications
Line 27: Line 27:
* Settings for Mediawiki are in /home/bikebike/docker/bikecollectives/LocalSettings.php
* Settings for Mediawiki are in /home/bikebike/docker/bikecollectives/LocalSettings.php
* Extensions are in the container at /var/www/html/w/extensions
* Extensions are in the container at /var/www/html/w/extensions
* I think to make changes happen you have to rebuild and restart the container with <code>docker compose build</code> & <code>docker compose up -d</code> in the /home/bikebike/docker/bikecollectives directory
* To make changes happen after editing, you issue a<code>docker compose restart</code>in the /home/bikebike/docker/bikecollectives directory
* The yellowish box at the top of the wiki can be edited at [[MediaWiki:Sitenotice]]
* The yellowish box at the top of the wiki can be edited at [[MediaWiki:Sitenotice]]


Line 36: Line 36:
* edit ~/docker/bikecollectives/default.conf
* edit ~/docker/bikecollectives/default.conf
* I used [https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#rewrite rewrite] directives in the relevant server sections, but I think return directives would also work.
* I used [https://nginx.org/en/docs/http/ngx_http_rewrite_module.html#rewrite rewrite] directives in the relevant server sections, but I think return directives would also work.
* <code>docker compose build</code> & <code>docker compose up -d</code>
* <code>docker compose build</code> (because default.conf is copied over to nginx) and a <code>docker compose up -d</code>


==bikebike.org==
==bikebike.org==


===As of July 23, 2023===
===History===


bikebike.org hosts a Ruby on Rails application that helps with registration for Bike!Bike! conferences. It's old and fragile and we've duct-taped some stuff on to keep it going and make it work for Bike!Bike! Everywhere! virtual conferences, but it is still the best thing we have for the purpose. It has the excellent feature of being trilingual (EN/ES/FR) by design on the frontend, though the backend administrative interface is English-only.
bikebike.org hosts a Ruby on Rails application that helps with registration for Bike!Bike! conferences. It's old and fragile and we've duct-taped some stuff on to keep it going and make it work for Bike!Bike! Everywhere! virtual conferences, but it is still the best thing we have for the purpose. It has the excellent feature of being trilingual (EN/ES/FR) by design on the frontend, though the backend administrative interface is English-only.
Line 48: Line 48:
====Bumbleberry & CSS issues (resolved)====
====Bumbleberry & CSS issues (resolved)====


Bumbleberry is a chunk of code (Ruby Module?) that tries to generate CSS suitable for whatever browser the viewer is using. It was a great idea ten years ago, but not so necessary now, and it needs to be manually updated every time a new browser version is released. At DigitalOcean we updated with a cron job:
Bumbleberry is a chunk of code (Ruby Module) that tries to generate CSS suitable for whatever browser the viewer is using. It was a great idea ten years ago, but not so necessary now, and it needs to be manually updated every time a new browser version is released. At DigitalOcean we updated with a cron job:


  truncate nohup.out -s 0 && nohup sh -c 'cd /home/rails && RAILS_ENV=production bundle exec rake bumbleberry:update && RAILS_ENV=production bundle exec rake assets:precompile && RAILS_ENV=production bundle exec rake assets:clean && kill `cat /home/unicorn/production.pid`; RAILS_ENV=production bundle exec unicorn_rails -E production -D -c /home/rails/config/unicorn.rb && kill `cat /home/unicorn/sidekiq_production.pid`; bundle exec sidekiq -d -C config/sidekiq_production.yml -e production -c 25' &
  truncate nohup.out -s 0 && nohup sh -c 'cd /home/rails && RAILS_ENV=production bundle exec rake bumbleberry:update && RAILS_ENV=production bundle exec rake assets:precompile && RAILS_ENV=production bundle exec rake assets:clean && kill `cat /home/unicorn/production.pid`; RAILS_ENV=production bundle exec unicorn_rails -E production -D -c /home/rails/config/unicorn.rb && kill `cat /home/unicorn/sidekiq_production.pid`; bundle exec sidekiq -d -C config/sidekiq_production.yml -e production -c 25' &


=== As of July 23, 2023 ===
However, Bumbleberry broke when BikeBike was dockerized, and was updated to more recent and secure Ruby libraries. This means that it no longer updates properly without breaking BikeBike.  In the absense of using Bumbleberry directly to update the css, when browser version are identified by BikeBike, if they don't exist in /public/stylesheets/*  the browser renders a responsive view, which doesn't look right for normal size screens.   
However, Bumbleberry broke when BikeBike was dockerized, and was updated to more recent and secure Ruby libraries. This means that it no longer updates properly without breaking BikeBike.  In the absense of using Bumbleberry directly to update the css, when browser version are identified by BikeBike, if they don't exist in /public/stylesheets/*  the browser renders a responsive view, which doesn't look right for normal size screens.   


Godwin recommended using the most recent css for the newer versions.  This works well for modern browsers. To enable this feat, the most recent browsers have to be identified, and the css from the most recent version has to be copied over to the newer version.  The irony is we could avoid this exercise, and only support modern browsers with one css file, but in the spirit of browser justice let's not assume obscure browsers are not being used anymore.
Godwin recommended using the most recent css for the newer versions.  This works well for modern browsers. To enable this feat, the most recent browsers have to be identified, and the css from the most recent version has to be copied over to the newer version.  The irony is we could avoid this exercise, and only support modern browsers with one css file, but in the spirit of browser justice let's not assume obscure browsers are not being used anymore.  This is now handled by [https://git.bikeshopi.dev/bike/BikeBikeBike/src/branch/master/caniuse.js caniuse.js].


The only disadvantage to this approach would be if a new browser with unknown css arose.  Fortunately, this probably won't be an issue for a long time to come, since new browsers projects almost always adopt the identity of a major engine:  and_chr, and_ff, and_qq, and_uc, android, baidu, bb, chrome, edge, firefox, ie, ie_mob, ios_saf, kaios, op_mini,  op_mobm, opera, safari, samsung
The only disadvantage to this approach would be if a new browser with unknown css arose.  Fortunately, this probably won't be an issue for a long time to come, since new browsers projects almost always adopt the identity of a major engine:  and_chr, and_ff, and_qq, and_uc, android, baidu, bb, chrome, edge, firefox, ie, ie_mob, ios_saf, kaios, op_mini,  op_mobm, opera, safari, samsung

Latest revision as of 03:40, 24 July 2023

Tech History - old updates from the OCF tech page, etc.

bikecollectives.org

As of 2023

Hosted on: RackNerd

Services are run with Docker containers, and include:

  • Automated Nginx reverse proxy with automated letsencrypt certificates.
  • Mail stack with docker-mailserver
  • bikecollectives.org front page
  • BikeBike.org - running/maintained/developed as a docker service.
  • Bike Collectives Wiki (MediaWiki)
  • lists.bikecollectives.org (MailMan3 email lists, including The ThinkTank)
  • RoundCube email client for tech administrative mail (e.g. DMARC reports)
  • Resticker - automatic restic backups
  • PassBolt password manager for administrative logins
  • Apprise - push notifications
  • Ofelia - job scheduling
  • some other things, and more coming!

Jonathan Rosenbaum and Darin April Wick have shell accounts; contact them if you need access.

MediaWiki

  • Settings for Mediawiki are in /home/bikebike/docker/bikecollectives/LocalSettings.php
  • Extensions are in the container at /var/www/html/w/extensions
  • To make changes happen after editing, you issue adocker compose restartin the /home/bikebike/docker/bikecollectives directory
  • The yellowish box at the top of the wiki can be edited at MediaWiki:Sitenotice

URL Rewrites

A few notes from adding URL rewrites to the nginx config in April 2023 so that bikecollectives.org/en-es and bikecollectives.org/es-en both redirect to the Language Exchange page for easier posting on social media, etc.

  • log in as bikebike (or su to bikebike)
  • edit ~/docker/bikecollectives/default.conf
  • I used rewrite directives in the relevant server sections, but I think return directives would also work.
  • docker compose build (because default.conf is copied over to nginx) and a docker compose up -d

bikebike.org

History

bikebike.org hosts a Ruby on Rails application that helps with registration for Bike!Bike! conferences. It's old and fragile and we've duct-taped some stuff on to keep it going and make it work for Bike!Bike! Everywhere! virtual conferences, but it is still the best thing we have for the purpose. It has the excellent feature of being trilingual (EN/ES/FR) by design on the frontend, though the backend administrative interface is English-only.

Here are some notes on working with the existing bikebike.org: https://www.bikecollectives.org/wiki/Tech_Meeting_2022.07.16

Bumbleberry & CSS issues (resolved)

Bumbleberry is a chunk of code (Ruby Module) that tries to generate CSS suitable for whatever browser the viewer is using. It was a great idea ten years ago, but not so necessary now, and it needs to be manually updated every time a new browser version is released. At DigitalOcean we updated with a cron job:

truncate nohup.out -s 0 && nohup sh -c 'cd /home/rails && RAILS_ENV=production bundle exec rake bumbleberry:update && RAILS_ENV=production bundle exec rake assets:precompile && RAILS_ENV=production bundle exec rake assets:clean && kill `cat /home/unicorn/production.pid`; RAILS_ENV=production bundle exec unicorn_rails -E production -D -c /home/rails/config/unicorn.rb && kill `cat /home/unicorn/sidekiq_production.pid`; bundle exec sidekiq -d -C config/sidekiq_production.yml -e production -c 25' &

As of July 23, 2023

However, Bumbleberry broke when BikeBike was dockerized, and was updated to more recent and secure Ruby libraries. This means that it no longer updates properly without breaking BikeBike.  In the absense of using Bumbleberry directly to update the css, when browser version are identified by BikeBike, if they don't exist in /public/stylesheets/* the browser renders a responsive view, which doesn't look right for normal size screens.

Godwin recommended using the most recent css for the newer versions.  This works well for modern browsers. To enable this feat, the most recent browsers have to be identified, and the css from the most recent version has to be copied over to the newer version.  The irony is we could avoid this exercise, and only support modern browsers with one css file, but in the spirit of browser justice let's not assume obscure browsers are not being used anymore. This is now handled by caniuse.js.

The only disadvantage to this approach would be if a new browser with unknown css arose.  Fortunately, this probably won't be an issue for a long time to come, since new browsers projects almost always adopt the identity of a major engine:  and_chr, and_ff, and_qq, and_uc, android, baidu, bb, chrome, edge, firefox, ie, ie_mob, ios_saf, kaios, op_mini, op_mobm, opera, safari, samsung

If a new engine does arise, we will deal with that issue when it occurs.

email accounts

bikebikeeverywhere@gmail.com

  • Primary email account for all B!B!E! communications
  • Used for many of our online accounts as well (e.g. zoom, discord, domain registrar)
  • Sometimes it's a nuisance to log in to, because gmail gets uncomfortable with logins from lots of different geographical locations and thinks they're spam and asks for confirmation. Confirmation codes usually go to Angel
  • We use it instead of an @bikecollectives.org or @bikebike.org account because (1) it contains a lot of institutional memory for B!B!E! and (2) sometimes bikecollectives and bikebike break down, and gmail is pretty reliable.
  • As of June 2023, forwards all emails to bbe@bikecollectives.org, which can be viewed at chocolate.bikecollectives.org

bbe@bikecollectives.org

  • Primary address for automated emails related to tech
    • DMARC reports
    • anything related to mailman (including the ThinkTank mailing list) administration
    • notifications about automated site backups
  • All messages sent to bikebikeeverywhere@gmail.com are forwarded here. If you can't log in to the gmail, this provides a sort of backdoor.