First workspace commit

This commit is contained in:
mhfowler
2021-08-06 13:58:40 -04:00
parent 87435932dc
commit d8803e9974
251 changed files with 22022 additions and 0 deletions

146
peach-web/docs/FEATURES.md Normal file
View File

@ -0,0 +1,146 @@
# peach-web
## Features List
A first draft of desirable features for the PeachCloud web admin interface.
_Note: This is a work-in-progress. Expect changes._
_First-pass at organizing features categorically_
**Summary:**
- Profile
- Peers
- Invites
- System Status
- Configuration
- Documentation
- Network
- _Not sure if this one is made redundant by System Status & Configuration_
- _Could also be 'Monitoring' (showing graphs of SSB network acitivty_
**Detail:**
- Profile
- Display avatar
- Set avatar (upload file)
- Display bio
- Update bio
- Peers
- List friends
- List followers
- List follows
- List locally-connected peers
- Follow
- Unfollow
- Block
- Mute (private block)
- Private-message a peer
- Invites
- Create an invite
- Text-based (hash)
- Image-based (QR-code)
- Audio-based (possible?)
- Share an invite
- Send to a peer within SSB (private message)
- Share publically within SSB (public post)
- Send via email
- Accept an invite
- Monitor an invite
- Check if the invite has been accepted
- For multi-use invites, show number of used & unused invite-slots
- Cancel an invite (_not sure if this is currently possible_)
- Documentation
- Browse
- Scuttlebot
- Scuttlebutt
- PeachCloud
- _Link to external docs or host locally for offline-first viewing?_
- Search
- Notes
- Add personal notes to document specific workflows etc.
- Display notes
- Delete notes
- System status
- Hardware
- CPU usage
- Memory usage
- Storage usage
- Disk I/O
- Software
- Version info of PeachCloud, sbot, plugins
- Scripts
- Plugins
- Power
- Power source (mains, battery, solar panels)
- Battery level and status (ie. 60% - charging)
- Network
- Display network mode (AP or client)
- If AP, list connected devices
- Display current connection(s)
- Ethernet
- WiFi
- Bluetooth
- NFC
- LoRa
- Display signal strength
- Display bandwidth usage
- Display hostname & external IP
- Display internal IP
- Logs
- Display system logs
- Errors
- List errors
- Report a bug / error
- Via SSB message
- Via email
- Configuration
- Access control
- Change user password
- Change administrator password
- Manage guest account
- Enable / disable SSH
- Blob management
- Prune blobs
- By size
- By date
- By author
- Network
- Set network mode (AP or client)
- List available networks
- Connect to a network
- Disconnect from a network
- Routing
- Select routing over IPv4, IPv6
- Enable / disable routing over CJDNS / Yggdrail
- Updates
- Check for available updates
- Download updates
- Install / apply update
- Backups
- Create backup
- Secret key
- Configuration (device settings)
- Export backup
- External storage (USB)
- Dark Crystal
- IPFS / Dat
- List backup history
- Schedule backups
- Delete previous backups / backup history
- Alerts
- Set alerts based on CPU, memory, disk, bandwith-usage thresholds
- List previously-defined alerts
- Delete alerts
- Plugins
- List available plugins / extensions
- _E.g. ssb-web viewer, git-ssb viewer_
- Activate a plugin
- Deactivate a plugin
- Define plugin settings
- Miscellaneous
- List current datetime
- Set datetime
- Display current timezone
- Set timezone

View File

@ -0,0 +1,49 @@
# peach-web
## Resources
### Raspberry Pi
[Installing Debian ARM64 on Raspberry Pi 3 with WiFi](https://quantum2.xyz/2017/10/27/installing-debian-arm64-on-raspberry-pi-3-with-wifi/)
[Debian buster on the Raspberry Pi 3 (update) (2018-01-08)](https://people.debian.org/~stapelberg/2018/01/08/raspberry-pi-3)
**Networking**
[Setting up a Raspberry Pi as a WiFi access point](https://learn.adafruit.com/setting-up-a-raspberry-pi-as-a-wifi-access-point/overview)
[Switching Between Client Mode and Access Point Mode on Raspberry Pi](http://shortcircuitsandinfiniteloops.blogspot.com/2018/02/switching-between-client-mode-and.html)
- No need for additional / external WiFi adapter
[Using your new Raspberry Pi 3 as a WiFi access point with hostapd](https://frillip.com/using-your-raspberry-pi-3-as-a-wifi-access-point-with-hostapd/)
- _Note: Successfully used this to configure my Pi 3 as a WiFi access point (including DHCP)_
[Starting hostapd when WiFi goes down (bash script)](http://sirlagz.net/2013/01/22/script-starting-hostapd-when-wifi-goes-down/)
[Raspberry Pi Zero W Simultaneous AP and Managed Mode Wifi](https://blog.thewalr.us/2017/09/26/raspberry-pi-zero-w-simultaneous-ap-and-managed-mode-wifi/)
- Could be helpful when it comes to switching between managed and AP mode
[RPi Switch Between AP and Client Mode](https://raspberrypi.stackexchange.com/questions/44184/switch-between-ap-and-client-mode)
[Using a Raspberry Pi 3 as a WiFi Client and Access Point simultaneously](http://www.marrold.co.uk/2017/03/using-raspberry-pi-3-as-wifi-client-and.html)
**GPIO**
rppal ([Crate](https://crates.io/crates/rppal), [Repo](https://github.com/golemparts/rppal), [Docs](https://docs.golemparts.com/rppal))
- Interface for the Raspberry Pi's GPIO, I2C, PWM and SPI peripherals (Rust)
[How to Setup an I2C LCD on the Raspberry Pi](http://www.circuitbasics.com/raspberry-pi-i2c-lcd-set-up-and-programming/) (Python)
### UI / UX
**Fantasy UI**
[Mark Coleran](http://coleran.com/) - large portfolio of FUI projects
[A Conversation About Fantasy User Interfaces](https://www.subtraction.com/2016/06/02/a-conversation-about-fantasy-user-interfaces/) - interview of Kirill Grouchnikov by Khoi Vinh
[Pushing Pixels](https://www.pushing-pixels.org/fui/) - FUI interviews

View File

@ -0,0 +1,74 @@
These questions were drawn from the #pub-help channel, viewed from the perspective of [@mycognosist](@HEqy940T6uB+T+d9Jaa58aNfRzLx9eRWqkZljBmnkmk=.ed25519) and spanning approximately 2 years.
_Note: list is incomplete and loosely grouped for now_
### Hardware
- What are the minimum hardware requirements for running a pub?
- Disk space
- How much is required?
- At what rate will usage increase?
- When can usage expect to stabilize?
- CPU & memory usage
- How much is being used?
### Peers
- Local peers
- Who am I connected to?
- Which pubs am I syncing with?
- Replication
- How many hops away will my pub replicate?
- How can I increase / reduce the replication reach?
- Users / peers
- How many people follow my pub?
- How many people is my pub following?
- How can I unfollow / block a peer / account?
- Discovery
- Once my pub is running, how can I publish / share discovery details?
- Sync
- How often will my pub sync with peers?
- How can I be sure my pub is syncing successfully?
### Networking
- Public IP & port
- How can I check / configure these details?
- Is it possible to proxy a pub to be able to listen to a port that is common with an HTTP server?
- Connections
- How many incoming & outgoing connections is my pub experiencing?
- Who / where / what am I connected to?
- NAT
- How can I ensure local network users are able to reach my pub behind a NAT?
- Bandwidth
- How much is required?
- Is there a per-user average?
- CJDNS / Yggdrasil
- How can I configure my pub to route in this way?
- How can I limit routing to IPv4 / IPv6 / CJDNS / Yggdrasil?
### Testing
- How can I be sure my pub is working properly?
### Errors
- Slow response
- How many peers is too many?
- Why else might my pub be responding slowly?
- Crashes and error reporting
- What's the best way to report a crash or error?
- What info should I submit?
- Who can I contact to request assistance?
### Backups
- Backups
- What files / info should I backup to allow recovery from hardware failure?
### Documentation
- Sbot commands
- Is there a place they're all documented?
- GDPR
- What do users of my pub need to be informed about to be compliant?