2020-07-01 08:57:45 +00:00
|
|
|
# Short URL
|
|
|
|
|
2020-07-18 11:06:42 +00:00
|
|
|
This is url shortener application is similar to [bit.ly](http://bit.ly)
|
2020-07-01 08:57:45 +00:00
|
|
|
|
2020-07-18 03:48:57 +00:00
|
|
|
## Demo
|
2020-12-12 14:25:42 +00:00
|
|
|
|
2020-07-18 03:48:57 +00:00
|
|
|
- Host : https://short.supanadit.com
|
|
|
|
- Email : admin@email.com
|
|
|
|
- Password : 123
|
|
|
|
|
2020-12-12 14:25:42 +00:00
|
|
|
### Generate Short URL
|
|
|
|
|
|
|
|
![Demo 1](demo/demo-1.gif)
|
|
|
|
|
|
|
|
### Generate Protected Short URL
|
|
|
|
|
|
|
|
![Demo 2](demo/demo-2.gif)
|
|
|
|
|
2020-07-01 08:57:45 +00:00
|
|
|
## Requirements
|
2020-12-12 14:25:42 +00:00
|
|
|
|
2020-07-01 08:57:45 +00:00
|
|
|
- Laravel 7.0+
|
|
|
|
- PHP 7.4
|
|
|
|
|
|
|
|
## Quick Start
|
2020-12-12 14:25:42 +00:00
|
|
|
|
2020-07-01 08:57:45 +00:00
|
|
|
- `composer install`
|
|
|
|
- create `.env` file
|
|
|
|
- `php artisan key:generate`
|
|
|
|
- `php artisan migrate`
|
|
|
|
- `php artisan db:seed`
|
2020-07-18 03:48:57 +00:00
|
|
|
- `php artisan serve`
|
|
|
|
|
|
|
|
#### Apache Configuration for Virtual Host
|
2020-12-12 14:25:42 +00:00
|
|
|
|
2020-07-18 03:48:57 +00:00
|
|
|
```apacheconfig
|
|
|
|
<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>
|
|
|
|
```
|
|
|
|
|
2022-02-06 07:45:02 +00:00
|
|
|
## Docker Way
|
|
|
|
|
|
|
|
This app can run inside docker with official support
|
|
|
|
|
|
|
|
### Via Docker Compose
|
|
|
|
|
|
|
|
```bash
|
|
|
|
docker-compose up -d
|
|
|
|
```
|
|
|
|
|
|
|
|
### Run Migration
|
|
|
|
|
|
|
|
```bash
|
2022-05-02 14:30:06 +00:00
|
|
|
docker-compose exec short-app php artisan migrate
|
2022-02-06 07:45:02 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
### Run Seeder
|
|
|
|
|
|
|
|
```bash
|
2022-05-02 14:30:06 +00:00
|
|
|
docker-compose exec short-app php artisan db:seed
|
2022-02-06 07:45:02 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
### Build Docker By Yourself
|
|
|
|
|
|
|
|
```bash
|
|
|
|
docker build . -t supanadit/short-url:1.0.2
|
|
|
|
```
|
|
|
|
|
2022-05-02 14:30:06 +00:00
|
|
|
## Development Using Docker
|
|
|
|
|
|
|
|
### Run Application
|
|
|
|
|
|
|
|
```bash
|
|
|
|
docker-compose -f docker-compose.dev.yml up -d
|
|
|
|
```
|
|
|
|
|
|
|
|
### Installing / Updating Dependencies
|
|
|
|
|
|
|
|
```bash
|
|
|
|
docker-compose -f docker-compose.dev.yml exec -w /srv short composer install # Composer Install
|
|
|
|
```
|
|
|
|
|
|
|
|
### Generate Key
|
|
|
|
|
|
|
|
```bash
|
|
|
|
docker-compose -f docker-compose.dev.yml exec -w /srv short php artisan key:generate # Generate Key
|
|
|
|
```
|
|
|
|
|
|
|
|
### Database Migration
|
|
|
|
|
|
|
|
```bash
|
|
|
|
docker-compose -f docker-compose.dev.yml exec -w /srv short php artisan migrate
|
|
|
|
```
|
|
|
|
|
|
|
|
### Database Seed
|
|
|
|
|
|
|
|
```bash
|
|
|
|
docker-compose -f docker-compose.dev.yml exec -w /srv short php artisan db:seed
|
|
|
|
```
|
|
|
|
|
|
|
|
### Shutdown Application
|
|
|
|
|
|
|
|
```bash
|
|
|
|
docker-compose -f docker-compose.dev.yml down
|
|
|
|
```
|
|
|
|
|
|
|
|
### Updating `.env`
|
|
|
|
|
|
|
|
```bash
|
|
|
|
docker-compose -f docker-compose.dev.yml exec -w /srv short php artisan config:cache
|
|
|
|
```
|
|
|
|
|
|
|
|
### Rebuilding Dockerfile
|
|
|
|
|
|
|
|
```bash
|
|
|
|
docker-compose -f docker-compose.dev.yml build
|
|
|
|
```
|
|
|
|
|
2022-02-06 07:45:02 +00:00
|
|
|
### 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
|
|
|
|
|
2020-07-18 03:48:57 +00:00
|
|
|
## Note
|
2020-12-12 14:25:42 +00:00
|
|
|
|
2020-07-18 03:48:57 +00:00
|
|
|
If you want to use forgot password feature, you must provide your email and password at `.env`
|
|
|
|
|
|
|
|
## Support
|
2020-12-12 14:25:42 +00:00
|
|
|
|
2020-07-18 03:48:57 +00:00
|
|
|
[![ko-fi](https://www.ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/N4N01CIMZ)
|
2020-07-01 08:57:45 +00:00
|
|
|
|
|
|
|
## License
|
2020-12-12 14:25:42 +00:00
|
|
|
|
2020-07-18 03:48:57 +00:00
|
|
|
Copyright 2020 Supan Adit Pratama
|
|
|
|
|
2020-12-12 14:25:42 +00:00
|
|
|
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
|
2020-07-18 03:48:57 +00:00
|
|
|
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
|
2020-12-12 14:25:42 +00:00
|
|
|
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.
|