Skip to content

Initial Setup Wizard #1125

@KernelDeimos

Description

@KernelDeimos

Setup Wizard

When you launch Puter's backend the first time, the configuration is optimized for local development. For other setups, it is often essential to modify configuration, which for most probably involves going through GitHub issues and seeing what problems others ran into before you. A setup wizard will help deployers and contributors get started with Puter.

A setup wizard should help the user through the following:

  • Configure subdomain behavior
    • Some hosting configurations don't allow subdomain. In these environments, the experimental_no_subdomain flag should be set. This option should be an opt-in with a warning about host-header injection.
  • Configure domain name, or nip.io mode
    • For ip access, the best way to do it is via a service like nip.io because Puter is more secure with multiple origins. For domain access, the deployer should configure a domain.
  • Set a password for the admin user
    • Currently, this shows up in the development console. This isn't great for deployers using Docker, because they might not be able to see the output.

Recommended Procedure

  • Try a frontend issue labelled "good first issue" (optional)
  • Try a backend issue labelled "good first issue" (optional)
  • first step for backend: Add a new service called SetupService.js to the selfhosted module
  • first step for frontend: Talk to Puter users on Discord or Reddit about design ideas; see what people like

Instructions & Support

Relevant Documentation

Relevant Modules

  • Web Module - This is where Puter's web server is initialized. This may need modification to support displaying the setup wizard when the user navigates to Puter in their browser.
  • Self-Hosted Module - This module creates the default user (DefaultUserService).
  • Puter Homepage Service - This service from the legacy core module might also need to be updated
  • Template Module - Provides a useful reference for how modules and services work

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions