mirror of
https://github.com/openclassify/openclassify.git
synced 2026-01-11 18:01:10 -06:00
Merge pull request #1350 from openclassify/fatihalp
New Docker Compose for Openclassify with PHP 8.2
This commit is contained in:
commit
4272bfd569
6
.devcontainer/devcontainer.json
Normal file
6
.devcontainer/devcontainer.json
Normal file
@ -0,0 +1,6 @@
|
||||
{
|
||||
"name": "Openclassify",
|
||||
// Script to run to bootstrap the app when the space is created
|
||||
"postCreateCommand": "bash install.sh",
|
||||
"outputCapture": "std"
|
||||
}
|
||||
16
.env-sail
16
.env-sail
@ -1,16 +1,18 @@
|
||||
APP_ENV=local
|
||||
APP_NAME=oc
|
||||
APP_ENV=production
|
||||
INSTALLED="false"
|
||||
APP_URL_TYPE="HTTP_X_FORWARDED_HOST"
|
||||
APP_KEY=DYKEBxfEHK1PP4mUbP3gWPtsPZgXh0qX
|
||||
APP_DEBUG=true
|
||||
DEBUG_BAR=false
|
||||
DEBUG_BAR=true
|
||||
DB_CONNECTION=mysql
|
||||
DB_HOST=mysql
|
||||
DB_DATABASE=oopenclassify
|
||||
DB_USERNAME=root
|
||||
DB_PASSWORD=
|
||||
#DB_HOST=mysql
|
||||
DB_HOST=host.docker.internal
|
||||
DB_DATABASE=oc
|
||||
DB_USERNAME=oc
|
||||
DB_PASSWORD=oc
|
||||
APPLICATION_NAME=Default
|
||||
APPLICATION_REFERENCE=default
|
||||
APPLICATION_DOMAIN=http://localhost
|
||||
ADMIN_USERNAME=admin
|
||||
ADMIN_EMAIL=admin@example.com
|
||||
ADMIN_PASSWORD=admin
|
||||
|
||||
11
.gitignore
vendored
11
.gitignore
vendored
@ -1 +1,12 @@
|
||||
.idea
|
||||
.env
|
||||
.coverage
|
||||
/bin
|
||||
/core
|
||||
/build
|
||||
/vendor
|
||||
/coverage
|
||||
/node_modules
|
||||
/bower_components
|
||||
composer.lock
|
||||
package-lock.json
|
||||
@ -1,62 +0,0 @@
|
||||
@servers(['web' => 'yoursite@50.59.80.150 -p 22400'])
|
||||
|
||||
@task('update', ['on' => 'web'])
|
||||
cd /home/yoursite
|
||||
php /usr/bin/composer update -o --no-dev
|
||||
php artisan migrate --all-addons --force
|
||||
php artisan migrate --force
|
||||
@endtask
|
||||
|
||||
@task('pull', ['on' => 'web'])
|
||||
cd /home/yoursite
|
||||
git pull
|
||||
@endtask
|
||||
|
||||
@task('migrate', ['on' => 'web'])
|
||||
cd /home/yoursite
|
||||
php artisan migrate --all-addons --force
|
||||
php artisan migrate --force
|
||||
@endtask
|
||||
|
||||
@task('compile', ['on' => 'web'])
|
||||
cd /home/yoursite
|
||||
php artisan streams:compile
|
||||
@endtask
|
||||
|
||||
@task('clear', ['on' => 'web'])
|
||||
cd /home/yoursite
|
||||
php artisan httpcache:clear
|
||||
php artisan assets:clear
|
||||
php artisan cache:clear
|
||||
php artisan route:clear
|
||||
php artisan view:clear
|
||||
php artisan twig:clear
|
||||
@endtask
|
||||
|
||||
@task('install', ['on' => 'web'])
|
||||
cd /home/yoursite
|
||||
php artisan addon:install {{$addon}}
|
||||
@endtask
|
||||
|
||||
@task('uninstall', ['on' => 'web'])
|
||||
cd /home/yoursite
|
||||
php artisan addon:uninstall {{$addon}}
|
||||
@endtask
|
||||
|
||||
@task('reinstall', ['on' => 'web'])
|
||||
cd /home/yoursite
|
||||
php artisan addon:reinstall {{$addon}}
|
||||
@endtask
|
||||
|
||||
@macro('push')
|
||||
pull
|
||||
clear
|
||||
migrate
|
||||
@endmacro
|
||||
|
||||
@macro('deploy')
|
||||
push
|
||||
update
|
||||
compile
|
||||
clear
|
||||
@endmacro
|
||||
69
INSTALL.md
69
INSTALL.md
@ -1,69 +0,0 @@
|
||||
# Installation
|
||||
|
||||
## Server Requirements
|
||||
|
||||
- PHP >= 7.2
|
||||
- XML PHP Extension
|
||||
- PDO PHP Extension
|
||||
- cURL PHP Extension
|
||||
- JSON PHP Extension
|
||||
- Ctype PHP Extension
|
||||
- BCMath PHP Extension
|
||||
- SQLite PHP Extension
|
||||
- OpenSSL PHP Extension
|
||||
- Mbstring PHP Extension
|
||||
- Fileinfo PHP Extension
|
||||
- Tokenizer PHP Extension
|
||||
- GD Library (>=2.0) **OR** Imagick PHP extension (>=6.5.7)
|
||||
|
||||
|
||||
### Via Composer
|
||||
|
||||
> Do not create an `.env` file just yet - Installer will generate one for you.{.important}
|
||||
|
||||
```bash
|
||||
composer create-project openclassify/openclassify
|
||||
```
|
||||
|
||||
### Host Configuration
|
||||
|
||||
When you setup your web host be sure to point the web root to `public` directory. Just as you would a normal Laravel installation.
|
||||
|
||||
#### Alternate Directories for cPanel or Virtualmin
|
||||
|
||||
In some environments like cPanel or Virtualmin it may be difficult to use the `public` directory as the web root. In these cases we suggest symlinking the `public` directory to `public_html`:
|
||||
|
||||
```bash
|
||||
ln -s public public_html
|
||||
```
|
||||
|
||||
You may also simply rename the `public` directory to `public_html`. Path hints will automatically use the correct path.
|
||||
|
||||
### Directory Permissions
|
||||
|
||||
After installing, you may need to configure some permissions in order to proceed. Directories within the `storage`, `public/app`, and the `bootstrap/cache` directories should be writable by your web server. If you are using the [Homestead](http://laravel.com/docs/homestead) virtual machine, these permissions should already be set.
|
||||
|
||||
|
||||
## Installing
|
||||
|
||||
### Running the Installation Wizard
|
||||
|
||||
After downloading and it's dependencies with:
|
||||
|
||||
```bash
|
||||
composer install
|
||||
```
|
||||
you will need to install the software in order to get started.
|
||||
By this time you should be able to visit your site's URL which will
|
||||
redirect you to the installer: `http://yoursite.com/installer`
|
||||
|
||||
### Using the CLI Installer
|
||||
|
||||
|
||||
```bash
|
||||
php artisan install
|
||||
|
||||
```
|
||||
|
||||
You will be prompted for details in order to proceed with the installation process.
|
||||
|
||||
1
Procfile
1
Procfile
@ -1 +0,0 @@
|
||||
web: INSTALLED=false php artisan streams:compile && INSTALLED=true bin/heroku-php-apache2 public/
|
||||
152
README.md
152
README.md
@ -4,7 +4,9 @@
|
||||
</p>
|
||||
<br>
|
||||
<p align="center">
|
||||
<a href="https://packagist.org/packages/openclassify/openclassify" target="_blank"><img class="badge" src="http://poser.pugx.org/openclassify/openclassify/v"></a>
|
||||
<a href="https://packagist.org/packages/openclassify/openclassify" target="_blank">
|
||||
<img class="badge" src="http://poser.pugx.org/openclassify/openclassify/v">
|
||||
</a>
|
||||
<a href="https://packagist.org/packages/openclassify/openclassify" target="_blank"><img class="badge" src="http://poser.pugx.org/openclassify/openclassify/downloads"></a>
|
||||
<a href="https://packagist.org/packages/openclassify/openclassify" target="_blank"><img class="badge" src="http://poser.pugx.org/openclassify/openclassify/license"></a>
|
||||
<a href="https://scrutinizer-ci.com/g/openclassify/openclassify/?branch=master" rel="nofollow"><img src="https://camo.githubusercontent.com/b1809c56d5b15765dabaf72c173e7f9aba9e7b721ccb0036e9db5da62869e6b1/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6f70656e636c6173736966792f6f70656e636c6173736966792f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572" alt="Scrutinizer Code Quality" data-canonical-src="https://scrutinizer-ci.com/g/openclassify/openclassify/badges/quality-score.png?b=master" style="max-width: 100%;"></a>
|
||||
@ -14,18 +16,52 @@
|
||||
|
||||
|
||||
|
||||
## About OpenClassify
|
||||
### About OpenClassify
|
||||
|
||||
OpenClassify is modular and most advanced open source classified platform build with Laravel 8 & PHP 8.1 Supported. Included Pyrocms 3.9
|
||||
OpenClassify is modular and most advanced open source classified platform build with Laravel included Pyrocms.
|
||||
|
||||
### Install with Docker
|
||||
|
||||
We suggest to use Docker. Nginx, Mysql and PHP 8.2 pre-installed. MacOS, Windows and Ubuntu is supported.
|
||||
Install Docker and run it. Install by watching 2 min video on [Youtube](https://www.youtube.com/watch?v=vVpVmsxq-Z0&t=27s&pp=ygUTb3BlbmNsYXNzaWZ5IGRvY2tlcg%3D%3D)
|
||||
|
||||
|
||||
## Translation
|
||||
1- Clone project
|
||||
```bash
|
||||
git clone https://github.com/openclassify/openclassify.git
|
||||
```
|
||||
|
||||
2- Run install.sh
|
||||
```bash
|
||||
bash install.sh
|
||||
```
|
||||
3- That's it!
|
||||
|
||||
Open project at [localhost](http://localhost)
|
||||
|
||||
|
||||
### Documentation
|
||||
|
||||
You can visit this link for detailed documentation.
|
||||
https://visiosoft.gitbook.io/v2/
|
||||
|
||||
### CLI Commands
|
||||
|
||||
If you couldn't find a solution for any problem, please review our CLI Command document.
|
||||
[View CLI Command Document](https://github.com/openclassify/openclassify/blob/master/docs/cli-commands.md)
|
||||
|
||||
### Other Installation Methods
|
||||
|
||||
Check [here](https://github.com/openclassify/openclassify/blob/master/docs/other-install-methods.md) for more.
|
||||
|
||||
|
||||
### Translation
|
||||
|
||||
Openclassify support 22+ languages. If you'd like to contribute translations, please check out our [Crowdin](https://crowdin.com/project/openclassify) project.
|
||||
|
||||
## Server Requirements
|
||||
### Server Requirements
|
||||
|
||||
- Supports PHP 7.3 and later (8.1 Supported)
|
||||
- Only PHP > 8.2 Officially Supported!
|
||||
- XML PHP Extension
|
||||
- PDO PHP Extension
|
||||
- cURL PHP Extension
|
||||
@ -40,114 +76,12 @@ Openclassify support 22+ languages. If you'd like to contribute translations, pl
|
||||
- GD Library (>=2.0) **OR** Imagick PHP extension (>=6.5.7)
|
||||
|
||||
|
||||
## Via Composer
|
||||
|
||||
> Do not create an `.env` file just yet - Installer will generate one for you.{.important}
|
||||
|
||||
```bash
|
||||
composer create-project openclassify/openclassify
|
||||
```
|
||||
|
||||
### Via Docker
|
||||
|
||||
We suggest to use Docker.
|
||||
|
||||
https://github.com/openclassify/openclassify/wiki/Installing-Openclassify-on-windows-docker-desktop
|
||||
|
||||
### Host Configuration
|
||||
|
||||
When you setup your web host be sure to point the web root to `public` directory. Just as you would a normal Laravel installation.
|
||||
|
||||
#### Alternate Directories for cPanel or Virtualmin
|
||||
|
||||
In some environments like cPanel or Virtualmin it may be difficult to use the `public` directory as the web root. In these cases we suggest symlinking the `public` directory to `public_html`:
|
||||
|
||||
```bash
|
||||
ln -s public public_html
|
||||
```
|
||||
|
||||
You may also simply rename the `public` directory to `public_html`. Path hints will automatically use the correct path.
|
||||
|
||||
### Directory Permissions
|
||||
|
||||
After installing, you may need to configure some permissions in order to proceed. Directories within the `storage`, `public/app`, and the `bootstrap/cache` directories should be writable by your web server. If you are using the [Homestead](http://laravel.com/docs/homestead) virtual machine, these permissions should already be set.
|
||||
|
||||
|
||||
## Installation
|
||||
|
||||
### Running the Installation Wizard
|
||||
|
||||
After downloading and it's dependencies with:
|
||||
|
||||
```bash
|
||||
composer install
|
||||
```
|
||||
you will need to install the software in order to get started.
|
||||
By this time you should be able to visit your site's URL which will
|
||||
redirect you to the installer: `http://yoursite.com/installer`
|
||||
|
||||
### Using the CLI Installer
|
||||
|
||||
|
||||
```bash
|
||||
php artisan install
|
||||
|
||||
```
|
||||
|
||||
You will be prompted for details in order to proceed with the installation process.
|
||||
|
||||
> You may need to run `ulimit -n 1024` before installing via CLI to temporarily increase your max open files limit.
|
||||
|
||||
#### Automating the CLI Installer
|
||||
|
||||
You can automate the installer by creating your own .env file with something like this:
|
||||
|
||||
```bash
|
||||
APP_ENV=local
|
||||
APP_DEBUG=true
|
||||
APP_KEY=zfesbnTkXvooWVcsKMw2r4SmPVNGbFoS
|
||||
DB_CONNECTION=mysql
|
||||
DB_HOST=localhost
|
||||
DB_DATABASE=workbench
|
||||
DB_USERNAME=root
|
||||
DB_PASSWORD=root
|
||||
APPLICATION_NAME=Default
|
||||
APPLICATION_REFERENCE=default
|
||||
APPLICATION_DOMAIN=localhost
|
||||
ADMIN_EMAIL=info@openclassify.com
|
||||
ADMIN_USERNAME=admin
|
||||
ADMIN_PASSWORD=password
|
||||
LOCALE=en
|
||||
TIMEZONE=Turkey/Istanbul
|
||||
```
|
||||
> The APP_KEY must be exactly 32 characters in length.
|
||||
|
||||
Then run the installer and indicate that the system is ready to install:
|
||||
|
||||
```bash
|
||||
php artisan install --ready
|
||||
```
|
||||
|
||||
## CLI Commands
|
||||
|
||||
If you couldn't find a solution for any problem, please review our CLI Command document.
|
||||
[View CLI Command Document](https://github.com/openclassify/openclassify/blob/master/docs/cli-commands.md)
|
||||
|
||||
## Documentation
|
||||
|
||||
You can visit this link for detailed documentation.
|
||||
https://visiosoft.gitbook.io/v2/
|
||||
|
||||
## Code Contributors
|
||||
### Code Contributors
|
||||
|
||||
This project exists thanks to all the people who [contribute](https://github.com/openclassify/openclassify/graphs/contributors) and more.
|
||||
|
||||
<p align="center">
|
||||
|
||||
<a href = "https://github.com/openclassify/openclassify/graphs/contributors">
|
||||
<img src = "https://contrib.rocks/image?repo=openclassify/openclassify"/>
|
||||
</a>
|
||||
|
||||
</p>
|
||||
|
||||
Thanks to Ryan and his stream platform PyroCMS which makes OpenClassify more powerful.
|
||||
|
||||
15
SECURITY.md
15
SECURITY.md
@ -1,15 +0,0 @@
|
||||
# Security Policy
|
||||
|
||||
## Supported Versions
|
||||
|
||||
|
||||
|
||||
| Version | Supported |
|
||||
| ------- | ------------------ |
|
||||
| 2.x | :x: |
|
||||
| 1.x | :white_check_mark: |
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
|
||||
If you discover any security related issues, please email info@openclassify.com instead of using the issue tracker.
|
||||
@ -1 +0,0 @@
|
||||
theme: jekyll-theme-cayman
|
||||
20
app.json
20
app.json
@ -1,20 +0,0 @@
|
||||
{
|
||||
"name": "PyroCMS",
|
||||
"description": "A barebones Pyro install.",
|
||||
"repository": "https://github.com/pyrocms/pyrocms",
|
||||
"logo": "https://pyrocms.com/files/vendors/logo-inverted_512@2x.jpg",
|
||||
"keywords": [
|
||||
"pyrocms",
|
||||
"laravel",
|
||||
"cms",
|
||||
"php"
|
||||
],
|
||||
"addons": [
|
||||
{
|
||||
"plan": "heroku-postgresql",
|
||||
}
|
||||
],
|
||||
"scripts": {
|
||||
"postdeploy": "composer install"
|
||||
}
|
||||
}
|
||||
46
build.xml
46
build.xml
@ -1,46 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<project name="Streams" default="dist">
|
||||
|
||||
<!-- ============================================ -->
|
||||
<!-- Target: prepare -->
|
||||
<!-- ============================================ -->
|
||||
<target name="prepare">
|
||||
|
||||
<echo msg="Deleting directory ./build"/>
|
||||
<delete dir="build"/>
|
||||
|
||||
<echo msg="Making directory ./build"/>
|
||||
<mkdir dir="./build"/>
|
||||
</target>
|
||||
|
||||
<!-- ============================================ -->
|
||||
<!-- Target: build -->
|
||||
<!-- ============================================ -->
|
||||
<target name="build" depends="prepare">
|
||||
<echo msg="Copying files to build directory..."/>
|
||||
|
||||
<echo msg="Copying ./ to ./build directory..."/>
|
||||
<copy todir="./build">
|
||||
<fileset dir="./">
|
||||
<include name="**"/>
|
||||
<exclude name=".git/"/>
|
||||
</fileset>
|
||||
</copy>
|
||||
</target>
|
||||
|
||||
<!-- ============================================ -->
|
||||
<!-- (DEFAULT) Target: dist -->
|
||||
<!-- ============================================ -->
|
||||
<target name="dist" depends="build">
|
||||
<echo msg="Creating archive..."/>
|
||||
|
||||
<tar destfile="./build/build.tar.gz" compression="gzip">
|
||||
<fileset dir="./build">
|
||||
<include name="*"/>
|
||||
</fileset>
|
||||
</tar>
|
||||
|
||||
<echo msg="Files copied and compressed in build directory OK!"/>
|
||||
</target>
|
||||
</project>
|
||||
@ -57,9 +57,7 @@
|
||||
"anomaly/navigation-module": "~2.4.0",
|
||||
"anomaly/dashboard-module": "~2.2.0",
|
||||
"anomaly/redirects-module": "~2.3.0",
|
||||
"anomaly/variables-module": "~2.4.0",
|
||||
"anomaly/settings-module": "~2.4.0",
|
||||
"anomaly/blocks-module": "~1.3.0",
|
||||
"anomaly/search-module": "~3.0.0",
|
||||
"anomaly/users-module": "~2.5.0",
|
||||
"anomaly/pages-module": "~2.6.0",
|
||||
@ -74,13 +72,10 @@
|
||||
"visiosoft/integer-field_type": "~2.1.0",
|
||||
"visiosoft/list-field_type": "*",
|
||||
"visiosoft/addblock-extension": "^1.1",
|
||||
"maatwebsite/excel": "*",
|
||||
"google/recaptcha": "1.2.*",
|
||||
"sentry/sentry-laravel": "2.3.1",
|
||||
"composer/composer": "2.*",
|
||||
"visiosoft/composer-merge-plugin": "2.*",
|
||||
"pusher/pusher-php-server": "^5.0",
|
||||
"simplepie/simplepie": "^1.5.0",
|
||||
"guzzlehttp/guzzle": "^7.3",
|
||||
"visiosoft/connect-module": "^1.0",
|
||||
"visiosoft/singlefile-field_type": "^1.0",
|
||||
@ -95,7 +90,6 @@
|
||||
"visiosoft/advs-module": "^1.0",
|
||||
"visiosoft/json-field_type": "^1.0",
|
||||
"visiosoft/language_switcher-plugin": "^1.0",
|
||||
"fruitcake/laravel-cors": "^2.0",
|
||||
"visiosoft/global_helper-extension": "*"
|
||||
},
|
||||
"replace": {
|
||||
@ -105,9 +99,7 @@
|
||||
"filp/whoops": "~2.0",
|
||||
"fzaninotto/faker": "~1.4",
|
||||
"symfony/css-selector": "3.1.*",
|
||||
"symfony/dom-crawler": "3.1.*",
|
||||
"anomaly/installer-module": "~2.4.0",
|
||||
"laravel/sail": "^1.14"
|
||||
"symfony/dom-crawler": "3.1.*"
|
||||
},
|
||||
"repositories": [
|
||||
{
|
||||
|
||||
@ -78,7 +78,7 @@ return [
|
||||
|
|
||||
*/
|
||||
|
||||
'url' => env('APP_URL', 'http://localhost'),
|
||||
'url' => env('APP_URL', '/'),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
||||
@ -15,7 +15,7 @@ return [
|
||||
|
|
||||
*/
|
||||
|
||||
'default' => env('BROADCAST_DRIVER', 'pusher'),
|
||||
'default' => env('BROADCAST_DRIVER', 'null'),
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
|
||||
@ -1,82 +1,87 @@
|
||||
# For more information: https://laravel.com/docs/sail
|
||||
version: '3'
|
||||
volumes:
|
||||
db-store:
|
||||
psysh-store:
|
||||
|
||||
configs:
|
||||
db-config:
|
||||
file: ./docker/mysql/my.cnf
|
||||
|
||||
services:
|
||||
laravel.test:
|
||||
php:
|
||||
build:
|
||||
context: ./docker/7.4
|
||||
dockerfile: Dockerfile
|
||||
args:
|
||||
WWWGROUP: '${WWWGROUP}'
|
||||
image: sail-7.4/openclassify
|
||||
extra_hosts:
|
||||
- 'host.docker.internal:host-gateway'
|
||||
ports:
|
||||
- '${APP_PORT:-80}:80'
|
||||
- '${HMR_PORT:-8080}:8080'
|
||||
environment:
|
||||
WWWUSER: '${WWWUSER}'
|
||||
LARAVEL_SAIL: 1
|
||||
XDEBUG_MODE: '${SAIL_XDEBUG_MODE:-off}'
|
||||
XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}'
|
||||
context: .
|
||||
dockerfile: ./docker/php/Dockerfile
|
||||
target: ${APP_BUILD_TARGET:-development}
|
||||
container_name: oc_php
|
||||
volumes:
|
||||
- '.:/var/www/html'
|
||||
networks:
|
||||
- sail
|
||||
phpmyadmin:
|
||||
image: 'phpmyadmin:latest'
|
||||
ports:
|
||||
- 8888:80
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
|
||||
links:
|
||||
- "mysql:db"
|
||||
- type: bind
|
||||
source: ./
|
||||
target: /workspace
|
||||
- type: volume
|
||||
source: psysh-store
|
||||
target: /root/.config/psysh
|
||||
volume:
|
||||
nocopy: true
|
||||
depends_on:
|
||||
- mysql
|
||||
networks:
|
||||
- sail
|
||||
mysql:
|
||||
image: 'mysql/mysql-server:8.0'
|
||||
database:
|
||||
condition: service_healthy
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
|
||||
nginx:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: ./docker/nginx/Dockerfile
|
||||
container_name: ${APP_NAME}_nginx
|
||||
ports:
|
||||
- '${FORWARD_DB_PORT:-3306}:3306'
|
||||
- target: 80
|
||||
published: ${WEB_PUBLISHED_PORT:-80}
|
||||
protocol: tcp
|
||||
mode: host
|
||||
volumes:
|
||||
- type: bind
|
||||
source: ./
|
||||
target: /workspace
|
||||
depends_on:
|
||||
- php
|
||||
- database
|
||||
|
||||
database:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: ./docker/mysql/Dockerfile
|
||||
command: --max_allowed_packet=32505856 # Set max_allowed_packet to 256M (or any other value)
|
||||
ports:
|
||||
- target: 3306
|
||||
published: ${DB_PUBLISHED_PORT:-3306}
|
||||
protocol: tcp
|
||||
mode: host
|
||||
configs:
|
||||
- source: db-config
|
||||
target: /etc/my.cnf
|
||||
volumes:
|
||||
- type: volume
|
||||
source: db-store
|
||||
target: /var/lib/mysql
|
||||
volume:
|
||||
nocopy: true
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
|
||||
MYSQL_ROOT_HOST: "%"
|
||||
MYSQL_DATABASE: '${DB_DATABASE}'
|
||||
MYSQL_USER: '${DB_USERNAME}'
|
||||
MYSQL_PASSWORD: '${DB_PASSWORD}'
|
||||
MYSQL_ALLOW_EMPTY_PASSWORD: 1
|
||||
volumes:
|
||||
- 'sail-mysql:/var/lib/mysql'
|
||||
- './vendor/laravel/sail/database/mysql/create-testing-database.sh:/docker-entrypoint-initdb.d/10-create-testing-database.sh'
|
||||
networks:
|
||||
- sail
|
||||
- MYSQL_DATABASE=${DB_DATABASE:-laravel}
|
||||
- MYSQL_USER=${DB_USERNAME:-phper}
|
||||
- MYSQL_PASSWORD=${DB_PASSWORD:-secret}
|
||||
- MYSQL_ROOT_PASSWORD=${DB_PASSWORD:-secret}
|
||||
healthcheck:
|
||||
test: ["CMD", "mysqladmin", "ping", "-p${DB_PASSWORD}"]
|
||||
retries: 3
|
||||
test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]
|
||||
timeout: 5s
|
||||
redis:
|
||||
image: 'redis:alpine'
|
||||
retries: 10
|
||||
|
||||
phpmyadmin:
|
||||
image: phpmyadmin/phpmyadmin:latest
|
||||
ports:
|
||||
- '${FORWARD_REDIS_PORT:-6379}:6379'
|
||||
volumes:
|
||||
- 'sail-redis:/data'
|
||||
networks:
|
||||
- sail
|
||||
healthcheck:
|
||||
test: ["CMD", "redis-cli", "ping"]
|
||||
retries: 3
|
||||
timeout: 5s
|
||||
memcached:
|
||||
image: 'memcached:alpine'
|
||||
ports:
|
||||
- '11211:11211'
|
||||
networks:
|
||||
- sail
|
||||
networks:
|
||||
sail:
|
||||
driver: bridge
|
||||
volumes:
|
||||
sail-mysql:
|
||||
driver: local
|
||||
sail-redis:
|
||||
driver: local
|
||||
- "8081:80"
|
||||
depends_on:
|
||||
- database
|
||||
environment:
|
||||
PMA_USER: oc
|
||||
PMA_PASSWORD: oc
|
||||
PMA_HOSTS: database,localhost
|
||||
@ -1,2 +0,0 @@
|
||||
WWWGROUP=1000
|
||||
WWWUSER=1000
|
||||
@ -1,68 +0,0 @@
|
||||
FROM ubuntu:20.04
|
||||
|
||||
LABEL maintainer="Taylor Otwell"
|
||||
|
||||
ARG WWWGROUP
|
||||
ARG NODE_VERSION=16
|
||||
ARG POSTGRES_VERSION=14
|
||||
|
||||
WORKDIR /var/www/html
|
||||
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
ENV TZ=UTC
|
||||
|
||||
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y gnupg gosu curl ca-certificates zip unzip git supervisor sqlite3 libcap2-bin libpng-dev python2 \
|
||||
&& mkdir -p ~/.gnupg \
|
||||
&& chmod 600 ~/.gnupg \
|
||||
&& echo "disable-ipv6" >> ~/.gnupg/dirmngr.conf \
|
||||
&& echo "keyserver hkp://keyserver.ubuntu.com:80" >> ~/.gnupg/dirmngr.conf \
|
||||
&& gpg --recv-key 0x14aa40ec0831756756d7f66c4f4ea0aae5267a6c \
|
||||
&& gpg --export 0x14aa40ec0831756756d7f66c4f4ea0aae5267a6c > /usr/share/keyrings/ppa_ondrej_php.gpg \
|
||||
&& echo "deb [signed-by=/usr/share/keyrings/ppa_ondrej_php.gpg] https://ppa.launchpadcontent.net/ondrej/php/ubuntu focal main" > /etc/apt/sources.list.d/ppa_ondrej_php.list \
|
||||
&& apt-get update \
|
||||
&& apt-get install -y php7.4-cli php7.4-dev \
|
||||
php7.4-pgsql php7.4-sqlite3 php7.4-gd \
|
||||
php7.4-curl php7.4-memcached \
|
||||
php7.4-imap php7.4-mysql php7.4-mbstring \
|
||||
php7.4-xml php7.4-zip php7.4-bcmath php7.4-soap \
|
||||
php7.4-intl php7.4-readline php7.4-pcov \
|
||||
php7.4-msgpack php7.4-igbinary php7.4-ldap \
|
||||
php7.4-redis php7.4-xdebug \
|
||||
&& php -r "readfile('https://getcomposer.org/installer');" | php -- --install-dir=/usr/bin/ --filename=composer \
|
||||
&& curl -sLS https://deb.nodesource.com/setup_$NODE_VERSION.x | bash - \
|
||||
&& apt-get install -y nodejs \
|
||||
&& npm install -g npm \
|
||||
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | tee /usr/share/keyrings/yarnkey.gpg >/dev/null \
|
||||
&& echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian/ stable main" > /etc/apt/sources.list.d/yarn.list \
|
||||
&& curl -sS https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | tee /usr/share/keyrings/pgdg.gpg >/dev/null \
|
||||
&& echo "deb [signed-by=/usr/share/keyrings/pgdg.gpg] http://apt.postgresql.org/pub/repos/apt focal-pgdg main" > /etc/apt/sources.list.d/pgdg.list \
|
||||
&& apt-get update \
|
||||
&& apt-get install -y yarn \
|
||||
&& apt-get install -y mysql-client \
|
||||
&& apt-get install -y postgresql-client-$POSTGRES_VERSION \
|
||||
&& apt-get update \
|
||||
&& apt-get install -y cron \
|
||||
&& apt-get -y autoremove \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||
|
||||
RUN setcap "cap_net_bind_service=+ep" /usr/bin/php7.4
|
||||
|
||||
RUN groupadd --force -g $WWWGROUP sail
|
||||
RUN useradd -ms /bin/bash --no-user-group -g $WWWGROUP -u 1337 sail
|
||||
|
||||
COPY start-container /usr/local/bin/start-container
|
||||
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
|
||||
COPY php.ini /etc/php/7.4/cli/conf.d/99-sail.ini
|
||||
RUN chmod +x /usr/local/bin/start-container
|
||||
|
||||
COPY scheduler /etc/cron.d/scheduler
|
||||
RUN chmod 0644 /etc/cron.d/scheduler
|
||||
RUN crontab /etc/cron.d/scheduler
|
||||
|
||||
EXPOSE 8000
|
||||
|
||||
ENTRYPOINT ["start-container"]
|
||||
@ -1,4 +0,0 @@
|
||||
[PHP]
|
||||
post_max_size = 100M
|
||||
upload_max_filesize = 100M
|
||||
variables_order = EGPCS
|
||||
@ -1 +0,0 @@
|
||||
* * * * * root cd /var/www/html && php artisan schedule:run >> /dev/null 2>&1
|
||||
@ -1,17 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
if [ ! -z "$WWWUSER" ]; then
|
||||
usermod -u $WWWUSER sail
|
||||
fi
|
||||
|
||||
if [ ! -d /.composer ]; then
|
||||
mkdir /.composer
|
||||
fi
|
||||
|
||||
chmod -R ugo+rw /.composer
|
||||
|
||||
if [ $# -gt 0 ]; then
|
||||
exec gosu $WWWUSER "$@"
|
||||
else
|
||||
exec /usr/bin/supervisord -c /etc/supervisor/conf.d/supervisord.conf
|
||||
fi
|
||||
@ -1,17 +0,0 @@
|
||||
[supervisord]
|
||||
nodaemon=true
|
||||
user=root
|
||||
logfile=/var/log/supervisor/supervisord.log
|
||||
pidfile=/var/run/supervisord.pid
|
||||
|
||||
[program:php]
|
||||
command=/usr/bin/php -d variables_order=EGPCS /var/www/html/artisan serve --host=0.0.0.0 --port=80
|
||||
user=sail
|
||||
environment=LARAVEL_SAIL="1"
|
||||
stdout_logfile=/dev/stdout
|
||||
stdout_logfile_maxbytes=0
|
||||
stderr_logfile=/dev/stderr
|
||||
stderr_logfile_maxbytes=0
|
||||
|
||||
[include]
|
||||
files=/var/www/html/supervisord/*.conf
|
||||
7
docker/mysql/Dockerfile
Normal file
7
docker/mysql/Dockerfile
Normal file
@ -0,0 +1,7 @@
|
||||
FROM mysql/mysql-server:8.0
|
||||
|
||||
ENV TZ=UTC
|
||||
|
||||
RUN mkdir /var/log/mysql \
|
||||
&& chown mysql:mysql $_ \
|
||||
&& chmod 777 $_
|
||||
37
docker/mysql/my.cnf
Normal file
37
docker/mysql/my.cnf
Normal file
@ -0,0 +1,37 @@
|
||||
[mysqld]
|
||||
# default
|
||||
skip-host-cache
|
||||
skip-name-resolve
|
||||
datadir = /var/lib/mysql
|
||||
socket = /var/lib/mysql/mysql.sock
|
||||
secure-file-priv = /var/lib/mysql-files
|
||||
user = mysql
|
||||
|
||||
pid-file = /var/run/mysqld/mysqld.pid
|
||||
|
||||
# character set / collation
|
||||
character_set_server = utf8mb4
|
||||
collation_server = utf8mb4_0900_ai_ci
|
||||
|
||||
# timezone
|
||||
default-time-zone = SYSTEM
|
||||
log_timestamps = SYSTEM
|
||||
|
||||
# Error Log
|
||||
log-error = /var/log/mysql/mysql-error.log
|
||||
|
||||
# Slow Query Log
|
||||
slow_query_log = 1
|
||||
slow_query_log_file = /var/log/mysql/mysql-slow.log
|
||||
long_query_time = 1.0
|
||||
log_queries_not_using_indexes = 0
|
||||
|
||||
# General Log
|
||||
general_log = 1
|
||||
general_log_file = /var/log/mysql/mysql-general.log
|
||||
|
||||
[mysql]
|
||||
default-character-set = utf8mb4
|
||||
|
||||
[client]
|
||||
default-character-set = utf8mb4
|
||||
9
docker/nginx/Dockerfile
Normal file
9
docker/nginx/Dockerfile
Normal file
@ -0,0 +1,9 @@
|
||||
FROM nginx:1.25
|
||||
|
||||
WORKDIR /workspace
|
||||
|
||||
ENV TZ=UTC
|
||||
|
||||
COPY ./docker/nginx/*.conf /etc/nginx/conf.d/
|
||||
|
||||
|
||||
35
docker/nginx/default.conf
Normal file
35
docker/nginx/default.conf
Normal file
@ -0,0 +1,35 @@
|
||||
access_log /dev/stdout main;
|
||||
error_log /dev/stderr warn;
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
root /workspace/public;
|
||||
|
||||
add_header X-Frame-Options "SAMEORIGIN";
|
||||
add_header X-XSS-Protection "1; mode=block";
|
||||
add_header X-Content-Type-Options "nosniff";
|
||||
|
||||
index index.php;
|
||||
|
||||
charset utf-8;
|
||||
|
||||
location / {
|
||||
try_files $uri $uri/ /index.php?$query_string;
|
||||
}
|
||||
|
||||
location = /favicon.ico { access_log off; log_not_found off; }
|
||||
location = /robots.txt { access_log off; log_not_found off; }
|
||||
|
||||
error_page 404 /index.php;
|
||||
|
||||
location ~ \.php$ {
|
||||
fastcgi_pass php:9000;
|
||||
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
|
||||
include fastcgi_params;
|
||||
}
|
||||
|
||||
location ~ /\.(?!well-known).* {
|
||||
deny all;
|
||||
}
|
||||
}
|
||||
69
docker/php/Dockerfile
Normal file
69
docker/php/Dockerfile
Normal file
@ -0,0 +1,69 @@
|
||||
FROM php:8.2-fpm-bullseye AS base
|
||||
|
||||
WORKDIR /workspace
|
||||
|
||||
# timezone environment
|
||||
ENV TZ=UTC \
|
||||
# locale
|
||||
LANG=en_US.UTF-8 \
|
||||
LANGUAGE=en_US:en \
|
||||
LC_ALL=en_US.UTF-8 \
|
||||
# composer environment
|
||||
COMPOSER_ALLOW_SUPERUSER=1 \
|
||||
COMPOSER_HOME=/composer
|
||||
|
||||
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get -y install --no-install-recommends \
|
||||
locales \
|
||||
git \
|
||||
unzip \
|
||||
libzip-dev \
|
||||
libicu-dev \
|
||||
libonig-dev \
|
||||
libpq-dev \
|
||||
libcurl4-gnutls-dev \
|
||||
libfreetype6-dev \
|
||||
libjpeg62-turbo-dev \
|
||||
libpng-dev \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& locale-gen en_US.UTF-8 \
|
||||
&& localedef -f UTF-8 -i en_US en_US.UTF-8 \
|
||||
&& docker-php-ext-install \
|
||||
intl \
|
||||
pdo_mysql \
|
||||
zip \
|
||||
bcmath \
|
||||
&& composer config -g process-timeout 3600 \
|
||||
&& composer config -g repos.packagist composer https://packagist.org
|
||||
|
||||
RUN docker-php-ext-configure gd --with-freetype=/usr/include/ --with-jpeg=/usr/include/
|
||||
RUN docker-php-ext-install gd
|
||||
|
||||
COPY . .
|
||||
|
||||
RUN ["chmod", "+x", "./docker/php/entrypoint.sh"]
|
||||
#CMD ["docker/php/entrypoint.sh"]
|
||||
|
||||
FROM base AS development
|
||||
|
||||
COPY ./docker/php/php.development.ini /usr/local/etc/php/php.ini
|
||||
|
||||
FROM development AS development-xdebug
|
||||
|
||||
RUN pecl install xdebug && \
|
||||
docker-php-ext-enable xdebug
|
||||
|
||||
COPY ./docker/php/xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
|
||||
|
||||
FROM base AS deploy
|
||||
|
||||
COPY ./docker/php/php.deploy.ini /usr/local/etc/php/php.ini
|
||||
COPY ./ /workspace
|
||||
|
||||
RUN composer install -q -n --no-ansi --no-dev --no-scripts --no-progress --prefer-dist \
|
||||
&& chmod -R 777 storage bootstrap/cache \
|
||||
&& php artisan optimize:clear \
|
||||
&& php artisan optimize
|
||||
29
docker/php/entrypoint.sh
Executable file
29
docker/php/entrypoint.sh
Executable file
@ -0,0 +1,29 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ ! -f "vendor/autoload.php" ]; then
|
||||
composer install --no-progress --no-interaction
|
||||
else
|
||||
echo "composer. nothing to do."
|
||||
fi
|
||||
|
||||
if [ ! -f ".env" ]; then
|
||||
echo "Creating env file for env from env-sail"
|
||||
cp .env-sail .env
|
||||
else
|
||||
echo "env file exists. nothing to do."
|
||||
fi
|
||||
|
||||
while IFS= read -r line || [[ -n "$line" ]]; do
|
||||
if [[ "$line" == "INSTALLED="* ]]; then
|
||||
installed="${line#*=}"
|
||||
installed=$(echo "$installed" | tr -d '[:space:]' | tr -d '[:punct:]') # Boşlukları ve özel karakterleri sil
|
||||
break
|
||||
fi
|
||||
done < .env
|
||||
|
||||
if [ "$installed" = "false" ]; then
|
||||
echo ".env installed is false starting installing"
|
||||
php artisan install --ready
|
||||
fi
|
||||
|
||||
php-fpm -R
|
||||
11
docker/php/opcache.ini
Normal file
11
docker/php/opcache.ini
Normal file
@ -0,0 +1,11 @@
|
||||
[opcache]
|
||||
opcache.enable=1
|
||||
; 0 means it will check on every request
|
||||
; 0 is irrelevant if opcache.validate_timestamps=0 which is desirable in production
|
||||
opcache.revalidate_freq=0
|
||||
opcache.validate_timestamps=1
|
||||
opcache.max_accelerated_files=10000
|
||||
opcache.memory_consumption=192
|
||||
opcache.max_wasted_percentage=10
|
||||
opcache.interned_strings_buffer=16
|
||||
opcache.fast_shutdown=1
|
||||
25
docker/php/php.deploy.ini
Normal file
25
docker/php/php.deploy.ini
Normal file
@ -0,0 +1,25 @@
|
||||
zend.exception_ignore_args = off
|
||||
expose_php = off
|
||||
max_execution_time = 30
|
||||
max_input_vars = 1000
|
||||
upload_max_filesize = 64M
|
||||
post_max_size = 128M
|
||||
memory_limit = 256M
|
||||
error_reporting = E_ALL
|
||||
display_errors = off
|
||||
display_startup_errors = off
|
||||
log_errors = on
|
||||
error_log = /dev/stderr
|
||||
default_charset = UTF-8
|
||||
|
||||
[Date]
|
||||
date.timezone = ${TZ}
|
||||
|
||||
[mysqlnd]
|
||||
mysqlnd.collect_memory_statistics = off
|
||||
|
||||
[Assertion]
|
||||
zend.assertions = -1
|
||||
|
||||
[mbstring]
|
||||
mbstring.language = Neutral
|
||||
25
docker/php/php.development.ini
Normal file
25
docker/php/php.development.ini
Normal file
@ -0,0 +1,25 @@
|
||||
zend.exception_ignore_args = off
|
||||
expose_php = on
|
||||
max_execution_time = 30
|
||||
max_input_vars = 1000
|
||||
upload_max_filesize = 64M
|
||||
post_max_size = 128M
|
||||
memory_limit = 256M
|
||||
error_reporting = E_ALL
|
||||
display_errors = on
|
||||
display_startup_errors = on
|
||||
log_errors = on
|
||||
error_log = /dev/stderr
|
||||
default_charset = UTF-8
|
||||
|
||||
[Date]
|
||||
date.timezone = ${TZ}
|
||||
|
||||
[mysqlnd]
|
||||
mysqlnd.collect_memory_statistics = on
|
||||
|
||||
[Assertion]
|
||||
zend.assertions = 1
|
||||
|
||||
[mbstring]
|
||||
mbstring.language = Neutral
|
||||
7
docker/php/xdebug.ini
Normal file
7
docker/php/xdebug.ini
Normal file
@ -0,0 +1,7 @@
|
||||
[xdebug]
|
||||
xdebug.mode = debug
|
||||
xdebug.start_with_request = yes
|
||||
xdebug.client_host = host.docker.internal
|
||||
xdebug.client_port = 9003
|
||||
xdebug.log = /tmp/xdebug.log
|
||||
xdebug.idekey = "PHPSTORM"
|
||||
@ -231,3 +231,28 @@ Use the `--force` flag to overwrite the files should they already exist.
|
||||
```bash
|
||||
php artisan addon:publish anomaly.module.store --force
|
||||
```
|
||||
|
||||
|
||||
### Migrate All Addons
|
||||
|
||||
```bash
|
||||
php artisan migrate --all-addons --force
|
||||
```
|
||||
|
||||
### Run Command Inside Docker
|
||||
|
||||
```bash
|
||||
docker exec -it oc_php php artisan install --ready
|
||||
```
|
||||
|
||||
### Composer set private repo
|
||||
|
||||
```bash
|
||||
composer config repositories.repo-name composer https://abc.aaa.com
|
||||
```
|
||||
|
||||
|
||||
### Composer set username and password for repo
|
||||
```bash
|
||||
composer config http-basic.abc.aaa.com openclassify pass
|
||||
```
|
||||
84
docs/other-install-methods.md
Normal file
84
docs/other-install-methods.md
Normal file
@ -0,0 +1,84 @@
|
||||
|
||||
## Via Composer
|
||||
|
||||
> Do not create an `.env` file just yet - Installer will generate one for you.{.important}
|
||||
|
||||
```bash
|
||||
composer create-project openclassify/openclassify
|
||||
```
|
||||
|
||||
### Host Configuration
|
||||
|
||||
When you setup your web host be sure to point the web root to `public` directory. Just as you would a normal Laravel installation.
|
||||
|
||||
#### Alternate Directories for cPanel or Virtualmin
|
||||
|
||||
In some environments like cPanel or Virtualmin it may be difficult to use the `public` directory as the web root. In these cases we suggest symlinking the `public` directory to `public_html`:
|
||||
|
||||
```bash
|
||||
ln -s public public_html
|
||||
```
|
||||
|
||||
You may also simply rename the `public` directory to `public_html`. Path hints will automatically use the correct path.
|
||||
|
||||
### Directory Permissions
|
||||
|
||||
After installing, you may need to configure some permissions in order to proceed.
|
||||
Directories within the `storage`, `public/app`, and the `bootstrap/cache` directories should be writable by your web server.
|
||||
If you are using the [Homestead](http://laravel.com/docs/homestead) virtual machine, these permissions should already be set.
|
||||
|
||||
|
||||
## Installation
|
||||
|
||||
### Running the Installation Wizard
|
||||
|
||||
After downloading and it's dependencies with:
|
||||
|
||||
```bash
|
||||
composer install
|
||||
```
|
||||
you will need to install the software in order to get started.
|
||||
By this time you should be able to visit your site's URL which will
|
||||
redirect you to the installer: `http://yoursite.com/installer`
|
||||
|
||||
### Using the CLI Installer
|
||||
|
||||
|
||||
```bash
|
||||
php artisan install
|
||||
|
||||
```
|
||||
|
||||
You will be prompted for details in order to proceed with the installation process.
|
||||
|
||||
> You may need to run `ulimit -n 1024` before installing via CLI to temporarily increase your max open files limit.
|
||||
|
||||
#### Automating the CLI Installer
|
||||
|
||||
You can automate the installer by creating your own .env file with something like this:
|
||||
|
||||
```bash
|
||||
APP_ENV=local
|
||||
APP_DEBUG=true
|
||||
APP_KEY=zfesbnTkXvooWVcsKMw2r4SmPVNGbFoS
|
||||
DB_CONNECTION=mysql
|
||||
DB_HOST=localhost
|
||||
DB_DATABASE=workbench
|
||||
DB_USERNAME=root
|
||||
DB_PASSWORD=root
|
||||
APPLICATION_NAME=Default
|
||||
APPLICATION_REFERENCE=default
|
||||
APPLICATION_DOMAIN=localhost
|
||||
ADMIN_EMAIL=info@openclassify.com
|
||||
ADMIN_USERNAME=admin
|
||||
ADMIN_PASSWORD=password
|
||||
LOCALE=en
|
||||
TIMEZONE=Turkey/Istanbul
|
||||
```
|
||||
> The APP_KEY must be exactly 32 characters in length.
|
||||
|
||||
Then run the installer and indicate that the system is ready to install:
|
||||
|
||||
```bash
|
||||
php artisan install --ready
|
||||
```
|
||||
42
install.sh
Normal file
42
install.sh
Normal file
@ -0,0 +1,42 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "================================================"
|
||||
echo "----------------- Openclassify -----------------"
|
||||
echo "----- Automated install script with Docker -----"
|
||||
echo "================================================"
|
||||
|
||||
if [[ $(which docker) && $(docker --version) ]]; then
|
||||
docker --version
|
||||
|
||||
#if ubuntu install docker
|
||||
if [ -n "$(uname -a | grep Ubuntu)" ]; then
|
||||
if ! docker info > /dev/null 2>&1; then
|
||||
systemctl --user start docker-desktop
|
||||
echo "Docker is not running. I've started for you. Run it again"
|
||||
exit
|
||||
fi
|
||||
fi
|
||||
else
|
||||
#if ubuntu install docker
|
||||
if [ -n "$(uname -a | grep Ubuntu)" ]; then
|
||||
sudo apt-get update
|
||||
sudo apt-get install ca-certificates curl gnupg
|
||||
sudo install -m 0755 -d /etc/apt/keyrings
|
||||
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
|
||||
sudo chmod a+r /etc/apt/keyrings/docker.gpg
|
||||
echo \
|
||||
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
|
||||
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
|
||||
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
|
||||
sudo apt-get update
|
||||
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
||||
|
||||
|
||||
else
|
||||
echo "Install docker and come back later"
|
||||
exit
|
||||
fi
|
||||
fi
|
||||
|
||||
cp .env-sail .env
|
||||
docker compose up
|
||||
@ -1,7 +0,0 @@
|
||||
location / {
|
||||
try_files $uri @rewriteapp;
|
||||
}
|
||||
|
||||
location @rewriteapp {
|
||||
rewrite ^(.*)$ /index.php$1 last;
|
||||
}
|
||||
13
uninstall.sh
Normal file
13
uninstall.sh
Normal file
@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "|| ## Openclassify ## || "
|
||||
echo "|| Removing Bye bye || "
|
||||
|
||||
docker compose down -v
|
||||
# TODO @fatihalp
|
||||
|
||||
# reinstall
|
||||
docker compose build --no-cache
|
||||
|
||||
docker compose up --force-recreate
|
||||
|
||||
Loading…
Reference in New Issue
Block a user