Privacy-focused, no-code, open-source form builder designed for simplicity and brand consistency.
License: AGPL-3.0. Built with: PHP, Vue, TypeScript, Blade, JavaScript, Dockerfile, Shell. Website: https://getinput.co. Source: https://github.com/deck9/input.
### Configuration Copy the `.env.dev.example` file to `.env` - the contents for the file should, in most cases, work out of the box. You may later generate and set the `APP_KEY` with the `sail artisan key:generate` command. ```bash cp .env.dev.example .env ``` ### Running Make sure that your Docker agent is running. There are several steps necessary to build the app for the first time. To simplify these tasks, we use mise-en-place. Just run the following command, and all build steps will run automatically: ```bash mise task up ``` ### Webpack (Mix) To compile the frontend assets, we use Laravel Mix. You can use watch mode to rerun Webpack each time a file changes. We also have a hot-reload enabled mode. Please note that this mode currently has a bug since we have defined multiple entry files for Webpack. ```bash npm run dev # or npm run dev # hot reload enabled ``` ### Sail Bash Alias It is recommended to create a bash alias, to make working with Laravel Sail simple as possible. To do this, you can check out the [Laravel docs](https://laravel.com/docs/9.x/sail#configuring-a-bash-alias) on this topic or just add the following alias to your `.bashrc` or `.zshrc`: ```bash alias sail='[ -f sail ] && bash sail || bash vendor/bin/sail' ``` With the alias, you can quickly perform tasks on the App Docker Container: ```bash sail up -d # start container sail artisan tinker # use laravel artisan commands sail artisan migrate # run database migrations sail artisan test # run phpunit sail composer {args} # use composer ``` ## Production Deployment ### Quick Start Please copy the `.env.example` file from this repository and fill in the missing values. To generate your `APP_KEY` you can use the following command in your terminal: ```bash echo -n 'base64:'; openssl rand -base64 32 ``` Save the generated key in the `.env` file and run the following commands to start the container: ```bash # Create Docker Volume docker volume create input-data ``` ```bash # Run the container using port 8080 on the host docker run -d -p 8080:8080 --name input \ -v input-data:/var/www/html/storage \ --env-file .env \ ghcr.io/deck9/input:main ``` ### Docker Compose You can also use Docker Compose to run the application. Please copy the `.env.example` file from this repository and fill in the missing values. To generate your `APP_KEY` you can use the following command in your terminal: ```bash echo -n 'base64:'; openssl rand -base64 32 ``` ```docker-compose version: '3.2' services: input: image: ghcr.io/deck9/input:main volumes: - input-data:/var/www/html/storage ports: - 8080:8080 restart: unless-stopped environment: - APP_URL="https://<hostname>:8080" - APP_KEY="<your-app-key>" - DB_CONNECTION="sqlite" - SESSION_DRIVER="file" - CACHE_DRIVER="file" volumes: input-data:
Self-hosting gives you three things SaaS can’t: data ownership (the files live on disks you control), cost predictability (a one-time setup vs. recurring per-seat fees that grow with your household or team), and longevity (open-source means the app keeps working even if the maintainers move on, since you can pin a working version). The trade-off is that you take on the operational work of running a server, applying updates, and handling backups.
Most self-hosted apps run comfortably on modest hardware — a Raspberry Pi 4, a mini PC, a NAS with Docker support, or a small VPS is usually enough for personal or family use. CPU and RAM requirements scale with how many simultaneous users or how much data you push through Input. Storage requirements depend on the kind of data you keep; check the README for guidance on data retention.
Last verified: 2026-04-28