app | ||
bootstrap | ||
config | ||
database | ||
demo | ||
public | ||
resources | ||
routes | ||
storage | ||
tests | ||
.dockerignore | ||
.editorconfig | ||
.env.docker | ||
.env.example | ||
.gitattributes | ||
.gitignore | ||
.styleci.yml | ||
artisan | ||
composer.json | ||
composer.lock | ||
docker-compose.dev.yml | ||
docker-compose.yml | ||
Dockerfile | ||
LICENSE | ||
package-lock.json | ||
package.json | ||
PHP.Dockerfile | ||
phpunit.xml | ||
README.md | ||
server.php | ||
webpack.mix.js |
Short URL
This is url shortener application is similar to bit.ly
Demo
- Host : https://short.supanadit.com
- Email : admin@email.com
- Password : 123
Generate Short URL
Generate Protected Short URL
Requirements
- Laravel 7.0+
- PHP 7.4
Quick Start
composer install
- create
.env
file php artisan key:generate
php artisan migrate
php artisan db:seed
php artisan serve
Apache Configuration for Virtual Host
<VirtualHost *:80>
DocumentRoot /srv/http/short/public
ServerAdmin webmaster@localhost
ServerName short.test
<Directory /srv/http/short/public>
DirectoryIndex index.php
AllowOverride All
Options FollowSymlinks
Require all granted
</Directory>
ErrorLog /var/log/httpd/short.test-error_log
CustomLog /var/log/httpd/short.test-access_log common
</VirtualHost>
Docker Way
This app can run inside docker with official support
Via Docker Compose
docker-compose up -d
Run Migration
docker-compose exec short-app php artisan migrate
Run Seeder
docker-compose exec short-app php artisan db:seed
Build Docker By Yourself
docker build . -t supanadit/short-url:1.0.2
Development Using Docker
Run Application
docker-compose -f docker-compose.dev.yml up -d
Installing / Updating Dependencies
docker-compose -f docker-compose.dev.yml exec -w /srv short composer install # Composer Install
Generate Key
docker-compose -f docker-compose.dev.yml exec -w /srv short php artisan key:generate # Generate Key
Database Migration
docker-compose -f docker-compose.dev.yml exec -w /srv short php artisan migrate
Database Seed
docker-compose -f docker-compose.dev.yml exec -w /srv short php artisan db:seed
Shutdown Application
docker-compose -f docker-compose.dev.yml down
Updating .env
docker-compose -f docker-compose.dev.yml exec -w /srv short php artisan config:cache
Rebuilding Dockerfile
docker-compose -f docker-compose.dev.yml build
Troubleshooting MySQL Won't Run In Docker
Run this script sudo chown -R 1001:1001 mysql
Because we used Bitnami distribution version of MySQL, so we need to change the permission of mysql folder, since it also described in docker page of bitnami
Note
If you want to use forgot password feature, you must provide your email and password at .env
Support
License
Copyright 2020 Supan Adit Pratama
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an " AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.