A repository in development for a solar powered network of servers that host a distributed web platform. Project by Tega Brain, Alex Nathanson and Benedetta Piantella. Supported by Eyebeam, Mozilla, and CS&S
This pull request makes some major changes to installation, development, and deployment of solar protocol
Fixes
/api/myip always shows the container 10.89.0.6
Todo
[ ] Run solar-protocol install and solar-protocol up on real raspberry pi
[ ] Create new network between real raspberry pi and dev setup
[ ] Add pi and dev ip addresses to local/devices.json, setup an api key for both, setup dynamicdns to BETA.
[ ] Check steward guide works
Enhancements
[ ] When a file changes in dev mode for datalogger, restart the logger
[ ] When a file changes in dev mode for protocol, restart the protocol
Migration Plan
[ ] Determine which stewards have access to a second raspberry pi or second microSD card
[ ] Run code using beta.solarprotocol.net as domain for all stewards with 2 pis
[ ] Wait 1 week to make sure things are working okay
[ ] Drop the beta. subdomain
[ ] Find times to meet with each steward to hand-hold migrate
This migration is really cool because as nodes cannot respond to old api, the network is self-healing. Nodes that can only talk 'old protocol' will just show rings for old protocol, new nodes new protocol. The network state may be in a state of flux, but the site will go somewhere working
Major changes
New solar-protocol cli command created to manage everything.
Installation script solar-protocol install for development and on raspberry pi.
Migration into three services - api, datalogger, protocol. These are run in containers to make it easier to work with on different systems.
Migration from php to python + javascript. May migrate all javascript to python templating in the future.
Removal of lots of dependencies and code (around 1/3 the size).
Migration to latest stable python and dependencies.
Improved windows support.
Ability to run multiple instances locally for testing.
Migration to new api v3 based on FastAPI with nice developer docs on /api/docs.
Merging of gateway api into regular api - this means we do not need to rely on server.solarprotocol.net for some things (like getting a nodes ip address), and can be even more distributed.
Migration from custom shell environment setting to secrets.json storage.
Migration from apache to nginx.
Migration to editable allowlist/blocklist instead of hardcoding hashes.
Missing features
Removal of website file management in /admin/settings. We are investigating using SyncThing or Samba or FTP.
This pull request makes some major changes to installation, development, and deployment of solar protocol
Fixes
10.89.0.6
Todo
solar-protocol install
andsolar-protocol up
on real raspberry piEnhancements
Migration Plan
This migration is really cool because as nodes cannot respond to old api, the network is self-healing. Nodes that can only talk 'old protocol' will just show rings for old protocol, new nodes new protocol. The network state may be in a state of flux, but the site will go somewhere working
Major changes
New
solar-protocol
cli command created to manage everything.Installation script
solar-protocol install
for development and on raspberry pi.Migration into three services - api, datalogger, protocol. These are run in containers to make it easier to work with on different systems.
Migration from php to python + javascript. May migrate all javascript to python templating in the future.
Removal of lots of dependencies and code (around 1/3 the size).
Migration to latest stable python and dependencies.
Improved windows support.
Ability to run multiple instances locally for testing.
Migration to new api v3 based on FastAPI with nice developer docs on /api/docs.
Merging of gateway api into regular api - this means we do not need to rely on server.solarprotocol.net for some things (like getting a nodes ip address), and can be even more distributed.
Migration from custom shell environment setting to secrets.json storage.
Migration from apache to nginx.
Migration to editable allowlist/blocklist instead of hardcoding hashes.
Missing features
Removal of website file management in /admin/settings. We are investigating using SyncThing or Samba or FTP.