short-url/README.md
2022-05-02 21:30:06 +07:00

3.2 KiB
Executable File

Short URL

This is url shortener application is similar to bit.ly

Demo

Generate Short URL

Demo 1

Generate Protected Short URL

Demo 2

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

ko-fi

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.