No description
  • PHP 48.9%
  • Vue 38.9%
  • TypeScript 10.2%
  • Blade 1.3%
  • JavaScript 0.3%
  • Other 0.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Ihor Andreew 9efcbb3ed5
Some checks failed
Deployment / tests (push) Has been cancelled
Deployment / docker (push) Has been cancelled
Deployment / tests-1 (push) Has been cancelled
Deployment / vitest (push) Has been cancelled
Deployment / build (push) Has been cancelled
Update classic.ts
2024-06-10 08:36:51 +00:00
.github/workflows #131 Fixed invalid signature error with invitation acceptance & Updated CI/CD (#150) 2024-05-03 23:55:29 +02:00
app add some routes to ensure has team whitelist 2024-01-20 13:11:44 +01:00
bootstrap init laravel and add jetstream 2021-09-15 18:52:25 +02:00
config improve sanctum stateful url setup and add default origin policy header 2024-04-18 17:12:53 +02:00
database delete forms that are no longer attached to a user in teams migration 2024-02-16 12:29:12 +01:00
lang/en Revert "Update validation.php" 2024-06-10 08:33:20 +00:00
public Implement New Team-Based User Model (#127) 2024-01-13 01:37:39 +01:00
resources Update classic.ts 2024-06-10 08:36:51 +00:00
routes Implement New Team-Based User Model (#127) 2024-01-13 01:37:39 +01:00
storage fix minio out of the box support 2022-04-10 16:10:29 +02:00
tests Implement New Team-Based User Model (#127) 2024-01-13 01:37:39 +01:00
.dockerignore remove ziggy js 2023-03-30 13:04:06 +02:00
.editorconfig Add makefile and update instructions 2022-04-10 01:51:19 +02:00
.env.dev.example rename example env to dev.example 2022-06-12 17:25:51 +02:00
.env.doc add doc env 2023-11-21 16:08:45 +02:00
.env.prod.example add default prod env 2022-06-12 20:15:39 +02:00
.eslintrc.json remove ziggy js 2023-03-30 13:04:06 +02:00
.gitattributes init laravel and add jetstream 2021-09-15 18:52:25 +02:00
.gitignore install scribe and add some configs 2023-11-16 15:47:41 +02:00
.gitlab-ci.yml Update .gitlab-ci.yml file 2024-06-10 08:30:29 +00:00
.styleci.yml init laravel and add jetstream 2021-09-15 18:52:25 +02:00
.tool-versions add privacy option to automatically delete submissions older than x days (#104) 2023-10-26 16:06:40 +02:00
artisan init laravel and add jetstream 2021-09-15 18:52:25 +02:00
composer.json Implement New Team-Based User Model (#127) 2024-01-13 01:37:39 +01:00
composer.lock Implement New Team-Based User Model (#127) 2024-01-13 01:37:39 +01:00
docker-compose.yml fix chinese language 2024-06-07 17:16:22 +02:00
Dockerfile update docker file 2023-11-21 16:09:07 +02:00
LICENSE update license references 2023-03-03 14:59:24 +01:00
Makefile remove ziggy js 2023-03-30 13:04:06 +02:00
nginx.conf remove old listen config in nginx.conf (closes #96) 2023-06-07 21:42:00 +02:00
nginx.default.conf #131 Fixed invalid signature error with invitation acceptance & Updated CI/CD (#150) 2024-05-03 23:55:29 +02:00
package-lock.json update packages 2024-01-28 21:47:05 +01:00
package.json update packages 2024-01-28 21:47:05 +01:00
php.conf.ini set upload limit in nginx and php.ini 2023-07-27 16:43:48 +02:00
phpunit.xml add privacy option to automatically delete submissions older than x days (#104) 2023-10-26 16:06:40 +02:00
postcss.config.js compile css in js bundle 2022-04-24 00:47:07 +02:00
README.md Fix typos in README (#160) 2024-06-07 12:24:35 +02:00
scheduler.conf add privacy option to automatically delete submissions older than x days (#104) 2023-10-26 16:06:40 +02:00
SECURITY.md Update SECURITY.md 2023-11-07 15:13:24 +01:00
server.php fix coding style with pint 2023-10-26 16:28:59 +02:00
start-container.sh run migrations when starting prod image and update readme 2022-06-13 01:40:17 +02:00
tailwind.config.js fix colors for inputs when using dark background colors (fix #121) 2023-11-30 15:03:10 +02:00
tsconfig.build.json fix vue-tsc without test files 2023-01-08 01:49:14 +01:00
tsconfig.json update packages 2023-11-16 14:40:31 +02:00
vite.config.mjs Adds some basic requirements for make.com (#122) 2023-11-30 12:47:20 +01:00
vite.prod-app.config.mjs Adds some basic requirements for make.com (#122) 2023-11-30 12:47:20 +01:00
vite.prod-classic.config.mjs Adds some basic requirements for make.com (#122) 2023-11-30 12:47:20 +01:00

Input is a no-code application to create simple & clean forms.
With our customization options, you can let the forms shine in your brands colors.

Why Input?

Input aims to be an alternative to proven tools like TypeForm, with the added benefit of self-hosting and having brandable forms out of the box.

We started Input out of a previous project called BotReach, which was already a conversational form tool, but closed-source. We plan to release a feature complete first MVP of Input in Q2 2022.

We are in an early stage of developing and some of our planned features are currently not in the codebase. You can contact us via philipp@deck9.co to get on the waitlist or if you want to contribute to the development.

Development

We are using Laravel Sail to develop Input. You need Docker already installed on your machine to run the entire app. We also recommend installing Node.JS and NPM directly on your host machine to make working with frontend assets more convenient.

Download

Clone the source of this repository with the following command:

git clone git@github.com:deck9/input.git

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.

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 have a Makefile in place. Just run the following command, and all build steps will run automatically:

make 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.

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 on this topic or just add the following alias to your .bashrc or .zshrc:

alias sail='[ -f sail ] && bash sail || bash vendor/bin/sail'

With the alias, you can quickly perform tasks on the App Docker Container:

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

# Create Docker Volume
docker volume create input-data

# Run the container using port 8080 on the host
docker run -d -p 8080:8080 --name input \
    -v input-data:/var/www/html/storage \
    -e APP_URL=https://hostname.domain.tld:8080 \
    ghcr.io/deck9/input:main

or as docker-compose.yml:

version: '3.2'
services:
    input:
      image: ghcr.io/deck9/input:main
      container_name: input
      hostname: <hostname>
      volumes:
        - input-data:/var/www/html/storage
      ports:
        - 8080:8080
      restart: unless-stopped
      environment:
        - APP_URL="https://<hostname>:8080"

volumes:
  input-data:

Behind a Proxy

Make sure to set the APP_URL env to the domain you want to use for your proxy.

docker run -d -p 8080:8080 --name input \
    -v input-data:/var/www/html/storage \
    -e APP_URL=https://domain.tld \
    ghcr.io/deck9/input:main

Also make sure that the proxy is configured to pass forward important request information like the scheme, host and IP.

location / {
    proxy_set_header Connection "";
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Frame-Options SAMEORIGIN;
    proxy_http_version 1.1;

    # Pass the request to the address of the docker container
    proxy_pass http://127.0.0.1:8080;
}

With MySQL

docker run -d -p 8080:8080 --name input \
    -e DB_CONNECTION=mysql \
    -e DB_DATABASE=input \
    -e DB_HOST=<MySQL-Host> \
    -e DB_USERNAME=<MySQL-User> \
    -e DB_PASSWORD=<MySQL-Password> \
    ghcr.io/deck9/input:main

Sending Emails

Setting up an SMTP email service is mandatory for some features, as team invitations or email notifications. Please use the following environment variables when running the container.

docker run -d -p 8080:8080 --name input \
    -e MAIL_MAILER=smtp \
    -e MAIL_HOST=<Mail-Host> \
    -e MAIL_USERNAME=<Mail-Username> \
    -e MAIL_PASSWORD=<Mail-Password> \
    -e MAIL_FROM_ADDRESS=<Mail-From-Address> \
    -e MAIL_FROM_NAME=<Mail-From-Name> \
    -e MAIL_PORT=1025 \
    -e MAIL_ENCRYPTION=tls \
    ghcr.io/deck9/input:main