diff --git a/.env b/.env new file mode 100644 index 0000000..e96b6ff --- /dev/null +++ b/.env @@ -0,0 +1,82 @@ +APP_NAME="Vendor Management System" +APP_ENV=production +APP_KEY=base64:1FUbOjr2nDygkWQ7nCkAnECVPn5Q0rTh3637ZKyHoNI= +APP_DEBUG=false +APP_TIMEZONE=Asia/Jakarta +#APP_URL=http://localhost +APP_URL=https://vemanis.rsabhk.co.id + +APP_FORCE_HTTPS=true +CAPTCHA_DISABLE=false + +APP_LOCALE=id +APP_FALLBACK_LOCALE=id +APP_FAKER_LOCALE=en_US + +APP_MAINTENANCE_DRIVER=file +# APP_MAINTENANCE_STORE=database + +BCRYPT_ROUNDS=12 + +LOG_CHANNEL=stack +LOG_STACK=single +LOG_DEPRECATIONS_CHANNEL=null +LOG_LEVEL=debug + +DB_CONNECTION=mysql +DB_HOST=vms-mysql +DB_PORT=3306 +DB_DATABASE=vms_v1_db +DB_USERNAME=vms-apps +DB_PASSWORD="32Yd4#uQ5i" + +SESSION_DRIVER=database +SESSION_LIFETIME=120 +SESSION_ENCRYPT=false +SESSION_PATH=/ +SESSION_DOMAIN=null + +BROADCAST_CONNECTION=log +FILESYSTEM_DISK=s3 +#FILESYSTEM_DISK=local +QUEUE_CONNECTION=database + +CACHE_STORE=database +CACHE_PREFIX= + +MEMCACHED_HOST=127.0.0.1 + +REDIS_CLIENT=phpredis +REDIS_HOST=127.0.0.1 +REDIS_PASSWORD=null +REDIS_PORT=6379 + +MAIL_MAILER=smtp +MAIL_HOST=mail.rsabhk.co.id +MAIL_PORT=25 +MAIL_USERNAME=ulp@rsabhk.co.id +MAIL_PASSWORD=Sparman87** +MAIL_ENCRYPTION=null +MAIL_FROM_ADDRESS="ulp@rsabhk.co.id" +MAIL_FROM_NAME="${APP_NAME}" + +AWS_ACCESS_KEY_ID=nDx4XEshSQPET8jbWDGL +AWS_SECRET_ACCESS_KEY=ZE5dcjYBkN8wv5s0sP6idUiz6cmQl1g8KNJlRBSe +AWS_DEFAULT_REGION=us-east-1 +AWS_BUCKET=vms-vemanis +AWS_URL=https://minio-2.rsabhk.co.id:90 +AWS_ENDPOINT=https://minio-2.rsabhk.co.id:90 +AWS_USE_PATH_STYLE_ENDPOINT=true + +FTP_HOST=host +FTP_USERNAME=username +FTP_PASSWORD=password +FTP_PORT=21 +FTP_ROOT_DIR="vms" +FTP_PASSIVE_MODE=true +FTP_SSL=false +FTP_TIMEOUT=30 +FTP_VISIBILITY=public +FTP_HTTP_URL=urlftp + +VITE_APP_NAME="${APP_NAME}" diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6268b7b --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +vendor-management-system/ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..e74236d --- /dev/null +++ b/Dockerfile @@ -0,0 +1,19 @@ +FROM php:8.2-apache-bookworm +RUN apt-get update && apt-get install -y libicu-dev libzip-dev icu-devtools libpng-dev libpq-dev zlib1g-dev zlib1g libmcrypt-dev nano default-mysql-client +RUN apt-get install -y libjpeg62-turbo-dev libfreetype6-dev libpng-dev +RUN docker-php-ext-configure gd --with-freetype --with-jpeg +RUN docker-php-ext-install -j$(nproc) gd intl mysqli pdo_mysql zip opcache ftp +RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer +RUN curl -fsSL https://deb.nodesource.com/setup_18.x | bash - +RUN apt-get install -y nodejs=18.15.0-1nodesource1 +RUN useradd -ms /bin/bash vms +RUN a2enmod rewrite remoteip +RUN cp /usr/local/etc/php/php.ini-production /usr/local/etc/php/php.ini +RUN sed -i 's/${APACHE_RUN_USER:=www-data}/${APACHE_RUN_USER:=vms}/' /etc/apache2/envvars && \ + sed -i 's/${APACHE_RUN_GROUP:=www-data}/${APACHE_RUN_GROUP:=vms}/' /etc/apache2/envvars && \ + sed -i 's|/var/www/html|/var/www/html/public|' /etc/apache2/sites-available/000-default.conf && \ + sed -i 's/;date.timezone =/date.timezone = Asia\/Jakarta/' /usr/local/etc/php/php.ini && \ + sed -i 's/;error_log = php_errors.log/error_log = \/var\/www\/html\/logs\/php_errors.log/' /usr/local/etc/php/php.ini && \ + sed -i 's/memory_limit = 128M/memory_limit = 512M/' /usr/local/etc/php/php.ini && \ + sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 64M/' /usr/local/etc/php/php.ini && \ + sed -i 's/post_max_size = 8M/post_max_size = 64M/' /usr/local/etc/php/php.ini \ No newline at end of file diff --git a/config/mail.php b/config/mail.php new file mode 100644 index 0000000..6ce2be8 --- /dev/null +++ b/config/mail.php @@ -0,0 +1,119 @@ + env('MAIL_MAILER', 'log'), + + /* + |-------------------------------------------------------------------------- + | Mailer Configurations + |-------------------------------------------------------------------------- + | + | Here you may configure all of the mailers used by your application plus + | their respective settings. Several examples have been configured for + | you and you are free to add your own as your application requires. + | + | Laravel supports a variety of mail "transport" drivers that can be used + | when delivering an email. You may specify which one you're using for + | your mailers below. You may also add additional mailers if needed. + | + | Supported: "smtp", "sendmail", "mailgun", "ses", "ses-v2", + | "postmark", "resend", "log", "array", + | "failover", "roundrobin" + | + */ + + 'mailers' => [ + + 'smtp' => [ + 'transport' => 'smtp', + 'url' => env('MAIL_URL'), + 'host' => env('MAIL_HOST', '127.0.0.1'), + 'port' => env('MAIL_PORT', 2525), + 'encryption' => env('MAIL_ENCRYPTION', 'null'), + 'username' => env('MAIL_USERNAME'), + 'password' => env('MAIL_PASSWORD'), + 'timeout' => null, + 'auth_mode' => null, + 'verify_peer' => false, + 'auto_tls' => false, // Important this line + 'local_domain' => env('MAIL_EHLO_DOMAIN', parse_url(env('APP_URL', 'http://localhost'), PHP_URL_HOST)), + ], + + 'ses' => [ + 'transport' => 'ses', + ], + + 'postmark' => [ + 'transport' => 'postmark', + // 'message_stream_id' => env('POSTMARK_MESSAGE_STREAM_ID'), + // 'client' => [ + // 'timeout' => 5, + // ], + ], + + 'resend' => [ + 'transport' => 'resend', + ], + + 'sendmail' => [ + 'transport' => 'sendmail', + 'path' => env('MAIL_SENDMAIL_PATH', '/usr/sbin/sendmail -bs -i'), + ], + + 'log' => [ + 'transport' => 'log', + 'channel' => env('MAIL_LOG_CHANNEL'), + ], + + 'array' => [ + 'transport' => 'array', + ], + + 'failover' => [ + 'transport' => 'failover', + 'mailers' => [ + 'smtp', + 'log', + ], + ], + + 'roundrobin' => [ + 'transport' => 'roundrobin', + 'mailers' => [ + 'ses', + 'postmark', + ], + ], + + ], + + /* + |-------------------------------------------------------------------------- + | Global "From" Address + |-------------------------------------------------------------------------- + | + | You may wish for all emails sent by your application to be sent from + | the same address. Here you may specify a name and address that is + | used globally for all emails that are sent by your application. + | + */ + + 'from' => [ + 'address' => env('MAIL_FROM_ADDRESS', 'hello@example.com'), + 'name' => env('MAIL_FROM_NAME', 'Example'), + ], + +]; diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..f2acd88 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,37 @@ +version: "3.7" +services: + web: + image: registry1.rsabhk.co.id:5080/rsabhk/app-vemanis-php:latest + # build: + # context: . + container_name: vms-web + restart: always + networks: + - vms-networks + ports: + - "9045:80" #Change port binding web application + volumes: + - ./vendor-management-system:/var/www/html #Change volume binding (APPS) web application + - ./config/mail.php:/var/www/html/config/mail.php + depends_on: + - db + db: + image: mysql:8.0-debian + container_name: vms-mysql + restart: always + environment: + MYSQL_ROOT_PASSWORD: "5#y72498uX" #Change root password mysql application + MYSQL_DATABASE: "vms_v1_db" #Change database name mysql application + MYSQL_USER: "vms-apps" #Change user mysql application + MYSQL_PASSWORD: "32Yd4#uQ5i" #Change password mysql application + networks: + - vms-networks + ports: + - "3358:3306" #Change port binding mysql application + volumes: + - vms-mysql-data:/var/lib/mysql +volumes: + vms-mysql-data: +networks: + vms-networks: + driver: bridge diff --git a/rebuild.sh b/rebuild.sh new file mode 100755 index 0000000..c5d7d7d --- /dev/null +++ b/rebuild.sh @@ -0,0 +1,4 @@ +#! /bin/bash +docker build . -t app/vemanis-php:latest && +docker tag app/vemanis-php:latest registry1.rsabhk.co.id:5080/rsabhk/app-vemanis-php:latest && +docker push registry1.rsabhk.co.id:5080/rsabhk/app-vemanis-php:latest \ No newline at end of file