From 40307350f1c857c145b30358f513fc46b8a2b466 Mon Sep 17 00:00:00 2001 From: David Bomba Date: Sun, 20 Mar 2022 15:41:20 +1100 Subject: [PATCH] Destroyed FreeNAS 11.2 (FreeBSD) (markdown) --- FreeNAS-11.2-(FreeBSD).md | 154 -------------------------------------- 1 file changed, 154 deletions(-) delete mode 100644 FreeNAS-11.2-(FreeBSD).md diff --git a/FreeNAS-11.2-(FreeBSD).md b/FreeNAS-11.2-(FreeBSD).md deleted file mode 100644 index ba75df5..0000000 --- a/FreeNAS-11.2-(FreeBSD).md +++ /dev/null @@ -1,154 +0,0 @@ -# Host Invoice Ninja on FreeNAS with a self signed cert - -First lets create the iocage jail, you can do this through the new UI but its waaay faster to use CLI. ssh into freenas and lets get going. - -### Create the iocage jail (Replace the ip and router ip with what works for you): - -`iocage create -n InvoiceNinja -r 11.2-RELEASE ip4_addr="vnet0|192.168.1.23/24" defaultrouter="192.168.1.1" vnet="on" allow_raw_sockets="1" boot="on"` - -### Lets log into the jail: - -`iocage console InvoiceNinja` - - -### Install all the dependencies: - -`pkg install -y nginx nano git curl openssl mariadb103-server php71 php71-ctype php71-pdo php71-pdo_mysql php71-session php71-iconv php71-filter php71-openssl php71-phar php71-mysqli aws-sdk-php php71-simplexml php72-xmlreader php72-xmlwriter php72-fileinfo php72-pear-PHP_Parser php72-tokenizer php72-gd php72-curl php72-gmp php72-json php72-zip php72-xml php72-readline php72-opcache php72-mbstring php72-iconv-7.2.31 php72-simplexml-7.2.31` - - -### AutoStart php, mysql and nginx: - -`sysrc mysql_enable=YES`
-`sysrc nginx_enable=YES`
-`sysrc php_fpm_enable=YES`
-`service nginx start`
-`service mysql-server start`
-`service php-fpm start`
- -### Modify php files to host the web server using user www: - -`sed -i '' -e 's?listen = 127.0.0.1:9000?listen = /var/run/php-fpm.sock?g' /usr/local/etc/php-fpm.d/www.conf`

-`sed -i '' -e 's/;listen.owner = www/listen.owner = www/g' /usr/local/etc/php-fpm.d/www.conf`

-`sed -i '' -e 's/;listen.group = www/listen.group = www/g' /usr/local/etc/php-fpm.d/www.conf`

-`sed -i '' -e 's/;listen.mode = 0660/listen.mode = 0600/g' /usr/local/etc/php-fpm.d/www.conf`

-`cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini`

-`sed -i '' -e 's?;cgi.fix_pathinfo=1?cgi.fix_pathinfo=0?g' /usr/local/etc/php.ini`

- -### Create the MySQL database for invoice ninja: - -`mysql -u root -e "CREATE DATABASE ninja;"`
-`mysql -u root -e "CREATE USER 'ninja'@'localhost' IDENTIFIED BY 'ninja';"`
-`mysql -u root -e "GRANT ALL PRIVILEGES ON ninja.* TO 'ninja'@'localhost';"`
-`mysql -u root -e "FLUSH PRIVILEGES;"`
- -### Secure the database: - -Answer most of the questions with yes. Read them. - -`mysql_secure_installation`
- -### Install Invoice Ninja (Installed to /usr/local/ninja): - -`curl -sS https://getcomposer.org/installer | php`
-`mv composer.phar /usr/local/bin/composer`
-`mkdir /usr/local/ninja`
-`git clone https://github.com/hillelcoren/invoice-ninja.git /usr/local/ninja`
-`cd /usr/local/ninja && composer install --no-dev -o `
- -### Generate a self signed cert named "ininja": - -`mkdir -p /etc/nginx/ssl`
-`openssl genrsa -des3 -passout pass:x -out /etc/nginx/ssl/ininja.pass.key 2048`
-`openssl rsa -passin pass:x -in /etc/nginx/ssl/ininja.pass.key -out /etc/nginx/ssl/ininja.key`
-`rm /etc/nginx/ssl/ininja.pass.key`
-`openssl req -new -key /etc/nginx/ssl/ininja.key -out /etc/nginx/ssl/ininja.csr`

-`openssl x509 -req -days 365 -in /etc/nginx/ssl/ininja.csr -signkey /etc/nginx/ssl/ininja.key -out /etc/nginx/ssl/ininja.crt`
- -### Set correct permissions for invoice ninja: - -`touch /usr/local/ninja/.env`
-`chown www:www /usr/local/ninja/.env`
-`chmod -R 755 /usr/local/ninja/storage`
-`cd /usr/local/ninja && chown -R www:www storage bootstrap public/logo`
- -### Now lets create the nginx config. Replace the server_name with your IP or domain name: - -`rm /usr/local/etc/nginx/nginx.conf`
-`nano /usr/local/etc/nginx/nginx.conf`
- -Copy the contents below and replace ip the wiki formatted it weird, copy everything after nginx.conf till the next heading: - -### nginx.conf -events { - worker_connections 1024; -} - - -http { - include mime.types; - default_type application/octet-stream; - - sendfile on; - - keepalive_timeout 65; - - - server { - listen 443 default; - server_name 192.168.1.23; - ssl on; - ssl_certificate /etc/nginx/ssl/ininja.crt; - ssl_certificate_key /etc/nginx/ssl/ininja.key; - ssl_session_timeout 5m; - ssl_ciphers 'AES128+EECDH:AES128+EDH:!aNULL'; - ssl_protocols TLSv1 TLSv1.1 TLSv1.2; - ssl_prefer_server_ciphers on; - root /usr/local/ninja/public; - index index.html index.htm 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; } - access_log /var/log/nginx/ininja.access.log; - error_log /var/log/nginx/ininja.error.log; - sendfile off; - location ~ \.php$ { - fastcgi_split_path_info ^(.+\.php)(/.+)$; - fastcgi_pass unix:/var/run/php-fpm.sock; - fastcgi_index index.php; - include fastcgi_params; - fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; - fastcgi_intercept_errors off; - fastcgi_buffer_size 16k; - fastcgi_buffers 4 16k; - } - location ~ /\.ht { - deny all; - } - } - server { - listen 80; - server_name 192.168.1.23; - add_header Strict-Transport-Security max-age=2592000; - rewrite ^ https://$server_name$request_uri? permanent; - } -} - -### Ok lets restart all the services you should be able to access the GUI setup on https://yourip - -**HTTPS!** - -`service mysql-server restart`
-`service php-fpm restart`
-`service nginx restart`
- - - - - - - - -