Self hosted url shortener application, a bit.ly alternative
Go to file
2022-05-02 21:30:06 +07:00
app Beautify code 2021-02-14 01:07:46 +07:00
bootstrap first commit 2020-07-01 15:57:45 +07:00
config first commit 2020-07-01 15:57:45 +07:00
database Login, Register, Forgot Password and List 2020-07-01 21:06:40 +07:00
demo Add demo image 2020-12-12 21:25:42 +07:00
public first commit 2020-07-01 15:57:45 +07:00
resources Beautify code 2021-02-14 01:07:46 +07:00
routes List, Pagination and Delete function 2020-07-02 21:40:49 +07:00
storage first commit 2020-07-01 15:57:45 +07:00
tests first commit 2020-07-01 15:57:45 +07:00
.dockerignore feat: docker usage for development 2022-05-02 21:30:06 +07:00
.editorconfig first commit 2020-07-01 15:57:45 +07:00
.env.docker feat: docker usage for development 2022-05-02 21:30:06 +07:00
.env.example first commit 2020-07-01 15:57:45 +07:00
.gitattributes first commit 2020-07-01 15:57:45 +07:00
.gitignore feat: docker usage for development 2022-05-02 21:30:06 +07:00
.styleci.yml first commit 2020-07-01 15:57:45 +07:00
artisan first commit 2020-07-01 15:57:45 +07:00
composer.json first commit 2020-07-01 15:57:45 +07:00
composer.lock first commit 2020-07-01 15:57:45 +07:00
docker-compose.dev.yml feat: docker usage for development 2022-05-02 21:30:06 +07:00
docker-compose.yml feat: docker usage for development 2022-05-02 21:30:06 +07:00
Dockerfile feat: docker usage for development 2022-05-02 21:30:06 +07:00
LICENSE Make it open source 2020-07-18 10:48:57 +07:00
package-lock.json first commit 2020-07-01 15:57:45 +07:00
package.json first commit 2020-07-01 15:57:45 +07:00
PHP.Dockerfile feat: docker usage for development 2022-05-02 21:30:06 +07:00
phpunit.xml first commit 2020-07-01 15:57:45 +07:00
README.md feat: docker usage for development 2022-05-02 21:30:06 +07:00
server.php first commit 2020-07-01 15:57:45 +07:00
webpack.mix.js first commit 2020-07-01 15:57:45 +07:00

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.