1
0

81 lines
1.8 KiB
Markdown

# features
* register
* list
* filter
* stats panel
* stats collector
* failure counter
# MVP
- [x] chore: data model
- [ ] model : add "s" to failure
- [ ] model : add "s" to folloing
- [ ] add "blacklisted"
- [x] data migration scripts
- [ ] homepage
- [x] form to register an instance
- [ ] check for duplicates
- [ ] grab first stats : version, users, groups, events
- [ ] if fail, set failure to 1
- [x] confirmation page
- [ ] find a way to populate location
- [x] instances list, no pagination
- [ ] abuse link
- [ ] scaper
- [x] select instances where failure < max_failure
- [ ] for each entry, fetch stats
- [ ] if fail, set failure to min(1, failure+1)
- [ ] if success, set failure = 0
- [x] insert new stats
- [x] update instances info
- [ ] stats page
- [x] big numbers
- [x] total Instances
- [x] total Users
- [x] total Groups
- [x] total Events
- [x] over time
- [x] instances over time area chart
- [x] users over time area chart
- [x] events over time area chart
- [x] groups over time area chart
- [ ] repartition
- [ ] versions pie chart
- [ ] languages pie chart (user weighted ?)
- [ ] location pie chart
- [ ] admin panel
- [ ] authentication (shared secret, oauth ?)
- [ ] list failed domain
- [ ] rescan an instance
- [ ] allow to blacklist a domain
- [ ] remove duplicate stats ; keep one per day per instance
- [x] package
- [x] docker image with : s6 + crond + python + sqlpage
- [ ] deploy on `beta-instances.mobilizon.org`
- [x] DNS -> LB3
- [x] HC ping
- [x] upload image
- [x] docker compose config
- [x] upload database
- [x] start service
# impl
## stack
1) sqlpage
* webapp: sqlpage
* cron : ?
2) python web framework
django / flask / microdot / webpy