Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release v2.0.0 #43

Open
25 of 38 tasks
a1ex4 opened this issue Sep 21, 2023 · 5 comments
Open
25 of 38 tasks

Release v2.0.0 #43

a1ex4 opened this issue Sep 21, 2023 · 5 comments
Labels
roadmap This issue is currently tracked in the roadmap
Milestone

Comments

@a1ex4
Copy link
Owner

a1ex4 commented Sep 21, 2023

Ownfoil v2 is a complete rewrite of the project, using a web framework that allows much more flexibility. Instead of generating a static shop file (custom .tfl index) and serving it with Nginx, the shop is now directly served with an HTTP API when Tinfoil connects. It is far from completed, but should address all the main issues with the current implementation. It's available in the v2 branch.

The main advantages of the v2 are:

  • Library is scanned each time the shop is accessed
  • The shop is served with an HTTP API endpoint, no more writing to a file in the library, hence no permission issue
  • Settings and user creation is all done through a Web UI
  • The library can be viewed from the Web UI

Roadmap to release

In no particular order, things left to do before releasing Ownfoil v2:

  • Shop generation and Tinfoil access working
  • App settings saved and read from a file in /config/settings.yaml
  • Auth: setup user based permissions (Shop Access, Backup Access, Admin Access)
  • Library: download titledb files on first run (git clone)
  • Dockerize it
  • Github actions
  • Auth: Private / public shop
  • Auth: add warning if no Admin user exists
  • Library scan: use console keys to decrypt and identify files
  • Upload and validate console keys through the UI
  • Auth: Private / public library view
  • Auth: finish login page
  • Auth: admin user has all rights, not just "admin"
  • Backend: fork updated NSC_builder and include as a submodule / publish on pypi
  • Library view: add dropdown with select filters (up to date, out of date, base, dlc)
  • Library view: add DLC update status
  • Library view: add missing DLC status
  • Server: try running behind reverse proxy with HTTPS
  • Library: implement titles.json generation from all files
  • Library view: build games list on the frontend
  • Library view: add pagination
  • Library view: add icon view
  • Library scan: support multiple library paths
  • Library scan: add file watcher on the library path to update the db each change (added/renamed/deleted)
  • Add logging everywhere
  • Auth: ability to change user password/permissions
  • UI: Add toast notification for every API call
  • Library view: add tooltip for version information
  • Server: add server port as an app setting
  • Library: regularly update titledb
  • Library: rename files according to template
  • Library access: use random uid instead of db index
  • Library view: add list view
  • Shop generation: encrypted shop toggle
  • Include js/css in static files
  • Write Setup page to guide users on how to access the shop on Tinfoil, DBI... (http adress, port, auth...)
  • Refactor and clean code structure
  • Use a Bootstrap theme, with dark/light detection like flatly

How to test

To report issues and/or discuss about v2, see the discussion: #52
Use v2 tag, built every commit pushed to the v2 branch:

version: "3"

services:
  ownfoil:
    container_name: ownfoil
    image: a1ex4/ownfoil:v2
    environment:
      # For write permission in config directory
      - PUID=1000
      - PGID=1000
    volumes:
      - /your/game/directory:/games
      - ./config:/app/config
    ports:
      - "8465:8465"
@SamuelBanya
Copy link

Will this also be included in the Docker container release via 'docker compose'?

Asking since my setup uses Portainer with the related 'Docker compose' file.

@CortezSMz
Copy link

What are the planned developments regarding the save manager?

@SiscuPrats
Copy link

Wow, it looks great. I'm looking forward to try it. Do you have a test version for docker? I could be a tester if you want.

Cheer up with the project.

@SiscuPrats
Copy link

Could you generate a docker container to test the 2.0 version? Thank you very much for your time and project.

@a1ex4
Copy link
Owner Author

a1ex4 commented Sep 26, 2023

@SamuelBanya @SiscuPrats Docker image for testing v2 is available, see the issue description.

@CortezSMz The save manager implementation will come later, I need to implement separate permission for each user (Shop Access, Library Access, Backup Access, Admin), then a profile page for users who can manage backups, then auto discovery of Switch device and linking it to a user... This means lots of development in the backend and fronted.

Repository owner locked and limited conversation to collaborators Sep 27, 2023
@a1ex4 a1ex4 added the roadmap This issue is currently tracked in the roadmap label Aug 17, 2024
@a1ex4 a1ex4 unpinned this issue Aug 22, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
roadmap This issue is currently tracked in the roadmap
Projects
None yet
Development

No branches or pull requests

4 participants