short-url/README.md

159 lines
3.2 KiB
Markdown
Raw Permalink Normal View History

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.