Management web application useful for planning future cosplays and archiving past cosplays.
Built on Laravel with a ReactJS + MaterialUI
Breaks down organization by Series -> Characters -> Outfits. Most of the information is laid out into a grid view.
- MySQL/MariaDB Server
- PHP >= 7.2.0
- PHP Extensions: BCMath, Ctype, JSON, Mbstring, OpenSSL, PDO, XML
- Composer
- NodeJS
- Make sure server is up to date
apt-get update && apt-get upgrade
- Instal NGINX
apt install nginx
&systemctl enable nginx.service
- Install MariaDB (newest version that supports large index keys by default)
apt-get install software-properties-common
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
add-apt-repository "deb [arch=amd64,arm64,ppc64el] http://mariadb.mirror.liquidtelecom.com/repo/10.4/ubuntu $(lsb_release -cs) main"
apt update
apt install mariadb-server mariadb-client
systemctl enable mariadb.service
- Secure MariaDB installation
mysql_secure_installation
- Setup firewall
ufw app list
ufw allow OpenSSH
ufw allow 'Nginx HTTP'
ufw allow 'Nginx HTTPS'
ufw enable
ufw status
- Install PHP, extensions, and other tools
apt install php-fpm php-common php-mbstring php-xmlrpc php-soap php-gd php-xml php-mysql php-cli php-zip php-bcmath
apt install composer unzip
- Update PHP settings to process for Nginx
nano /etc/php/<version>/fpm/php.ini
memory_limit = 256M
upload_max_filesize = 64M
cgi.fix_pathinfo=0
- Clone repository into /var/www/html. Rename if you want to.
- Setup nginx to have permission over the folder
chown -R www-data:www-data /var/www/html/<Folder Name>
chmod -R 755 /var/www/html/<Folder Name>
- Setup nginx sites-available for folder. Create symbolic link to sites-enabled
- Restart Nginx to refresh changes
systemctl restart nginx.service
- Go into MariaDB and create a new database for the website
CREATE DATABASE <database name>;
- Go into folder
- Install composer modules
- Development:
composer install
- Production:
composer install --no-dev --optimize-autoloader
- Development:
- Install node modules
npm install
- Development:
npm run dev
ornpm run watch
- Production:
npm run prod
- Change
.env.example
file into.env
- Update entries within the
.env
file to match database and other information- If in production, be sure to set
APP_ENV=production
andAPP_DEBUG=false
- If in production, be sure to set
- Generate a new key
php artisan key:generate
- Create database tables
php artisan migrate
- If you want it seeded, then
php artisan migrate --seed
- You can wipe and seed again by doing
php artisan migrate:fresh --seed
- Generate encryption keys for API Auth
php artisan passport:install
- Setup public symbolic link to storage folder
php artisan storage:link