diff --git a/.github/workflows/SA-codeql.yml b/.github/workflows/SA-codeql.yml
index d76c898e1c..acf65d5c16 100644
--- a/.github/workflows/SA-codeql.yml
+++ b/.github/workflows/SA-codeql.yml
@@ -26,7 +26,7 @@ jobs:
language: [ 'javascript' ]
steps:
- name: Checkout repository
- uses: actions/checkout@v3.1.0
+ uses: actions/checkout@v3.3.0
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
diff --git a/.github/workflows/codacy-analysis.yml b/.github/workflows/codacy-analysis.yml
index 819829f5af..0d77e1ae7c 100644
--- a/.github/workflows/codacy-analysis.yml
+++ b/.github/workflows/codacy-analysis.yml
@@ -32,7 +32,7 @@ jobs:
steps:
# Checkout the repository to the GitHub Actions runner
- name: Checkout code
- uses: actions/checkout@v3.1.0
+ uses: actions/checkout@v3.3.0
# Execute Codacy Analysis CLI and generate a SARIF output with the security issues identified during the analysis
- name: Run Codacy Analysis CLI
diff --git a/.github/workflows/docker-alpine.yml b/.github/workflows/docker-alpine.yml
index 1eafe33cf6..3139763cbd 100644
--- a/.github/workflows/docker-alpine.yml
+++ b/.github/workflows/docker-alpine.yml
@@ -41,7 +41,7 @@ jobs:
steps:
# https://github.com/actions/checkout
- name: Checkout codebase
- uses: actions/checkout@v3.1.0
+ uses: actions/checkout@v3.3.0
# https://github.com/docker/setup-buildx-action
- name: Setup Docker Buildx
diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml
index f166a29f89..b261dd828b 100644
--- a/.github/workflows/docker.yml
+++ b/.github/workflows/docker.yml
@@ -41,7 +41,7 @@ jobs:
steps:
# https://github.com/actions/checkout
- name: Checkout codebase
- uses: actions/checkout@v3.1.0
+ uses: actions/checkout@v3.3.0
# https://github.com/docker/setup-buildx-action
- name: Setup Docker Buildx
diff --git a/config/version.php b/config/version.php
index b03420a784..f111cfb8d1 100644
--- a/config/version.php
+++ b/config/version.php
@@ -6,5 +6,5 @@ return array (
'prerelease_version' => '',
'hash_version' => 'g799c9c910',
'full_hash' => 'v6.0.14-117-g799c9c910',
- 'branch' => 'develop',
+ 'branch' => 'master',
);
\ No newline at end of file
diff --git a/public/css/build/AdminLTE.css b/public/css/build/AdminLTE.css
index ccebc2f518..a5db4de5c9 100644
Binary files a/public/css/build/AdminLTE.css and b/public/css/build/AdminLTE.css differ
diff --git a/public/css/build/app.css b/public/css/build/app.css
index 13b44a11ea..eafdaf869c 100644
Binary files a/public/css/build/app.css and b/public/css/build/app.css differ
diff --git a/public/css/build/overrides.css b/public/css/build/overrides.css
index ec9e3fb85e..296252f933 100644
Binary files a/public/css/build/overrides.css and b/public/css/build/overrides.css differ
diff --git a/public/css/dist/all.css b/public/css/dist/all.css
index 59e1dd4d0e..efdc4f9f98 100644
Binary files a/public/css/dist/all.css and b/public/css/dist/all.css differ
diff --git a/public/css/dist/bootstrap-table.css b/public/css/dist/bootstrap-table.css
index b95d3d2b77..0cffbb53c4 100644
Binary files a/public/css/dist/bootstrap-table.css and b/public/css/dist/bootstrap-table.css differ
diff --git a/public/css/dist/signature-pad.min.css b/public/css/dist/signature-pad.min.css
index 218b9c2365..7065929572 100644
Binary files a/public/css/dist/signature-pad.min.css and b/public/css/dist/signature-pad.min.css differ
diff --git a/public/css/dist/skins/skin-black-dark.css b/public/css/dist/skins/skin-black-dark.css
index 5ba6c5eadd..b626d5f9d8 100644
Binary files a/public/css/dist/skins/skin-black-dark.css and b/public/css/dist/skins/skin-black-dark.css differ
diff --git a/public/css/dist/skins/skin-black-dark.min.css b/public/css/dist/skins/skin-black-dark.min.css
index 5ba6c5eadd..7003d97b76 100644
Binary files a/public/css/dist/skins/skin-black-dark.min.css and b/public/css/dist/skins/skin-black-dark.min.css differ
diff --git a/public/css/dist/skins/skin-black.css b/public/css/dist/skins/skin-black.css
index ab4d845e2a..2d3d0edc3b 100644
Binary files a/public/css/dist/skins/skin-black.css and b/public/css/dist/skins/skin-black.css differ
diff --git a/public/css/dist/skins/skin-black.min.css b/public/css/dist/skins/skin-black.min.css
index ab4d845e2a..5a5decc906 100644
Binary files a/public/css/dist/skins/skin-black.min.css and b/public/css/dist/skins/skin-black.min.css differ
diff --git a/public/css/dist/skins/skin-blue-dark.css b/public/css/dist/skins/skin-blue-dark.css
index a393ee578c..a46f0730af 100644
Binary files a/public/css/dist/skins/skin-blue-dark.css and b/public/css/dist/skins/skin-blue-dark.css differ
diff --git a/public/css/dist/skins/skin-blue-dark.min.css b/public/css/dist/skins/skin-blue-dark.min.css
index a393ee578c..3aa8cb8e0e 100644
Binary files a/public/css/dist/skins/skin-blue-dark.min.css and b/public/css/dist/skins/skin-blue-dark.min.css differ
diff --git a/public/css/dist/skins/skin-blue.css b/public/css/dist/skins/skin-blue.css
index cac9000174..cdc62766ec 100644
Binary files a/public/css/dist/skins/skin-blue.css and b/public/css/dist/skins/skin-blue.css differ
diff --git a/public/css/dist/skins/skin-blue.min.css b/public/css/dist/skins/skin-blue.min.css
index cac9000174..09b0bba755 100644
Binary files a/public/css/dist/skins/skin-blue.min.css and b/public/css/dist/skins/skin-blue.min.css differ
diff --git a/public/css/dist/skins/skin-contrast.css b/public/css/dist/skins/skin-contrast.css
index b5d7fc4e9b..a6dbe96048 100644
Binary files a/public/css/dist/skins/skin-contrast.css and b/public/css/dist/skins/skin-contrast.css differ
diff --git a/public/css/dist/skins/skin-contrast.min.css b/public/css/dist/skins/skin-contrast.min.css
index b5d7fc4e9b..8119cf0697 100644
Binary files a/public/css/dist/skins/skin-contrast.min.css and b/public/css/dist/skins/skin-contrast.min.css differ
diff --git a/public/css/dist/skins/skin-green-dark.css b/public/css/dist/skins/skin-green-dark.css
index 3fe0a606d3..d4f932bdc6 100644
Binary files a/public/css/dist/skins/skin-green-dark.css and b/public/css/dist/skins/skin-green-dark.css differ
diff --git a/public/css/dist/skins/skin-green-dark.min.css b/public/css/dist/skins/skin-green-dark.min.css
index 3fe0a606d3..b06af9cfc3 100644
Binary files a/public/css/dist/skins/skin-green-dark.min.css and b/public/css/dist/skins/skin-green-dark.min.css differ
diff --git a/public/css/dist/skins/skin-green.css b/public/css/dist/skins/skin-green.css
index fe0b851609..cd113d5e54 100644
Binary files a/public/css/dist/skins/skin-green.css and b/public/css/dist/skins/skin-green.css differ
diff --git a/public/css/dist/skins/skin-green.min.css b/public/css/dist/skins/skin-green.min.css
index fe0b851609..620d48e3f4 100644
Binary files a/public/css/dist/skins/skin-green.min.css and b/public/css/dist/skins/skin-green.min.css differ
diff --git a/public/css/dist/skins/skin-orange-dark.css b/public/css/dist/skins/skin-orange-dark.css
index fe7af4f628..3493c68a7d 100644
Binary files a/public/css/dist/skins/skin-orange-dark.css and b/public/css/dist/skins/skin-orange-dark.css differ
diff --git a/public/css/dist/skins/skin-orange-dark.min.css b/public/css/dist/skins/skin-orange-dark.min.css
index fe7af4f628..db7b71bc07 100644
Binary files a/public/css/dist/skins/skin-orange-dark.min.css and b/public/css/dist/skins/skin-orange-dark.min.css differ
diff --git a/public/css/dist/skins/skin-orange.css b/public/css/dist/skins/skin-orange.css
index b26415b6a3..411d4994ac 100644
Binary files a/public/css/dist/skins/skin-orange.css and b/public/css/dist/skins/skin-orange.css differ
diff --git a/public/css/dist/skins/skin-orange.min.css b/public/css/dist/skins/skin-orange.min.css
index b26415b6a3..af01a70cff 100644
Binary files a/public/css/dist/skins/skin-orange.min.css and b/public/css/dist/skins/skin-orange.min.css differ
diff --git a/public/css/dist/skins/skin-purple-dark.css b/public/css/dist/skins/skin-purple-dark.css
index e1bd8edb4a..48d4e9c206 100644
Binary files a/public/css/dist/skins/skin-purple-dark.css and b/public/css/dist/skins/skin-purple-dark.css differ
diff --git a/public/css/dist/skins/skin-purple-dark.min.css b/public/css/dist/skins/skin-purple-dark.min.css
index e1bd8edb4a..55e01afa42 100644
Binary files a/public/css/dist/skins/skin-purple-dark.min.css and b/public/css/dist/skins/skin-purple-dark.min.css differ
diff --git a/public/css/dist/skins/skin-purple.css b/public/css/dist/skins/skin-purple.css
index d4f67fee9b..344cbfce10 100644
Binary files a/public/css/dist/skins/skin-purple.css and b/public/css/dist/skins/skin-purple.css differ
diff --git a/public/css/dist/skins/skin-purple.min.css b/public/css/dist/skins/skin-purple.min.css
index d4f67fee9b..8a89eae1a6 100644
Binary files a/public/css/dist/skins/skin-purple.min.css and b/public/css/dist/skins/skin-purple.min.css differ
diff --git a/public/css/dist/skins/skin-red-dark.css b/public/css/dist/skins/skin-red-dark.css
index cbb5b07d14..3b032afd26 100644
Binary files a/public/css/dist/skins/skin-red-dark.css and b/public/css/dist/skins/skin-red-dark.css differ
diff --git a/public/css/dist/skins/skin-red-dark.min.css b/public/css/dist/skins/skin-red-dark.min.css
index cbb5b07d14..45b2b867fd 100644
Binary files a/public/css/dist/skins/skin-red-dark.min.css and b/public/css/dist/skins/skin-red-dark.min.css differ
diff --git a/public/css/dist/skins/skin-red.css b/public/css/dist/skins/skin-red.css
index 0dc3658056..c6167ad739 100644
Binary files a/public/css/dist/skins/skin-red.css and b/public/css/dist/skins/skin-red.css differ
diff --git a/public/css/dist/skins/skin-red.min.css b/public/css/dist/skins/skin-red.min.css
index 0dc3658056..4f73db5918 100644
Binary files a/public/css/dist/skins/skin-red.min.css and b/public/css/dist/skins/skin-red.min.css differ
diff --git a/public/css/dist/skins/skin-yellow-dark.css b/public/css/dist/skins/skin-yellow-dark.css
index 5691df2194..2cd5132b28 100644
Binary files a/public/css/dist/skins/skin-yellow-dark.css and b/public/css/dist/skins/skin-yellow-dark.css differ
diff --git a/public/css/dist/skins/skin-yellow-dark.min.css b/public/css/dist/skins/skin-yellow-dark.min.css
index 5691df2194..c93aabd289 100644
Binary files a/public/css/dist/skins/skin-yellow-dark.min.css and b/public/css/dist/skins/skin-yellow-dark.min.css differ
diff --git a/public/css/dist/skins/skin-yellow.css b/public/css/dist/skins/skin-yellow.css
index 8aef4cb90e..5424b7f75d 100644
Binary files a/public/css/dist/skins/skin-yellow.css and b/public/css/dist/skins/skin-yellow.css differ
diff --git a/public/css/dist/skins/skin-yellow.min.css b/public/css/dist/skins/skin-yellow.min.css
index 8aef4cb90e..f64159f334 100644
Binary files a/public/css/dist/skins/skin-yellow.min.css and b/public/css/dist/skins/skin-yellow.min.css differ
diff --git a/public/js/build/app.js b/public/js/build/app.js
index 5c1c0197f5..acf0515258 100644
Binary files a/public/js/build/app.js and b/public/js/build/app.js differ
diff --git a/public/js/build/vendor.js b/public/js/build/vendor.js
index b5ee42d9f6..38212409f3 100644
Binary files a/public/js/build/vendor.js and b/public/js/build/vendor.js differ
diff --git a/public/js/dist/all.js b/public/js/dist/all.js
index 65f596fac2..ab9c045c89 100644
Binary files a/public/js/dist/all.js and b/public/js/dist/all.js differ
diff --git a/public/js/dist/bootstrap-table.js b/public/js/dist/bootstrap-table.js
index 0fafbbff9b..2f4be303fa 100644
Binary files a/public/js/dist/bootstrap-table.js and b/public/js/dist/bootstrap-table.js differ
diff --git a/public/mix-manifest.json b/public/mix-manifest.json
index 719da79a95..08e1035107 100644
--- a/public/mix-manifest.json
+++ b/public/mix-manifest.json
@@ -1,24 +1,24 @@
{
- "/js/build/app.js": "/js/build/app.js?id=f05cc05b9000ba73e1949bcf137d4301",
- "/css/dist/skins/skin-blue.css": "/css/dist/skins/skin-blue.css?id=f677207c6cf9678eb539abecb408c374",
- "/css/build/overrides.css": "/css/build/overrides.css?id=0465141b9ecb0662ba6790c1460f391f",
- "/css/build/app.css": "/css/build/app.css?id=c3a896cab26e2093f8be24336b7db1b9",
- "/css/build/AdminLTE.css": "/css/build/AdminLTE.css?id=dc383f8560a8d4adb51d44fb4043e03b",
- "/css/dist/skins/skin-orange.css": "/css/dist/skins/skin-orange.css?id=6f0563e726c2fe4fab4026daaa5bfdf2",
- "/css/dist/skins/skin-orange-dark.css": "/css/dist/skins/skin-orange-dark.css?id=f343f659ca1d45534d2c2c3cc30fb619",
- "/css/dist/skins/skin-blue-dark.css": "/css/dist/skins/skin-blue-dark.css?id=57e634d63101d3613f4c73aaa2e3f50a",
- "/css/dist/skins/skin-yellow-dark.css": "/css/dist/skins/skin-yellow-dark.css?id=5120ce6a4b70d11bbc84a5125aa31949",
- "/css/dist/skins/skin-yellow.css": "/css/dist/skins/skin-yellow.css?id=7b315b9612b8fde8f9c5b0ddb6bba690",
- "/css/dist/skins/skin-purple-dark.css": "/css/dist/skins/skin-purple-dark.css?id=713b1205aa2d7c9db282f8cd5754c0e4",
- "/css/dist/skins/skin-purple.css": "/css/dist/skins/skin-purple.css?id=6fe68325d5356197672c27bc77cedcb4",
- "/css/dist/skins/skin-red-dark.css": "/css/dist/skins/skin-red-dark.css?id=6ea1eecb7f939256c373c92f58749e72",
- "/css/dist/skins/skin-black-dark.css": "/css/dist/skins/skin-black-dark.css?id=1c0f59079342d1a10099bf41d2e46f59",
- "/css/dist/skins/skin-black.css": "/css/dist/skins/skin-black.css?id=76482123f6c70e866d6b971ba91de7bb",
- "/css/dist/skins/skin-green-dark.css": "/css/dist/skins/skin-green-dark.css?id=c0d21166315b7c2cdd4819fa4a5e4d1e",
- "/css/dist/skins/skin-green.css": "/css/dist/skins/skin-green.css?id=0a82a6ae6bb4e58fe62d162c4fb50397",
- "/css/dist/skins/skin-contrast.css": "/css/dist/skins/skin-contrast.css?id=8e538625ebd4b8096e150d1aa483547b",
- "/css/dist/skins/skin-red.css": "/css/dist/skins/skin-red.css?id=44bf834f2110504a793dadec132a5898",
- "/css/dist/all.css": "/css/dist/all.css?id=ef030b613d45620b907cf0184a14e868",
+ "/js/build/app.js": "/js/build/app.js?id=d9c0da9015392f9beb559c4b0b9935b2",
+ "/css/dist/skins/skin-blue.css": "/css/dist/skins/skin-blue.css?id=392cc93cfc0be0349bab9697669dd091",
+ "/css/build/overrides.css": "/css/build/overrides.css?id=63aaaefb7d139347dfe0717663bc85ec",
+ "/css/build/app.css": "/css/build/app.css?id=c1a860573a0f304db91d6a3d3f387114",
+ "/css/build/AdminLTE.css": "/css/build/AdminLTE.css?id=f25c77ed07053646a42e9c19923d24fa",
+ "/css/dist/skins/skin-orange.css": "/css/dist/skins/skin-orange.css?id=268041e902b019730c23ee3875838005",
+ "/css/dist/skins/skin-orange-dark.css": "/css/dist/skins/skin-orange-dark.css?id=c3aebf96518113fe22517a67c6ec1dc1",
+ "/css/dist/skins/skin-blue-dark.css": "/css/dist/skins/skin-blue-dark.css?id=bf6f6c2270110b3b29f2f3af7e07636d",
+ "/css/dist/skins/skin-yellow-dark.css": "/css/dist/skins/skin-yellow-dark.css?id=b23ea958779a62474f398ffab9da7ba1",
+ "/css/dist/skins/skin-yellow.css": "/css/dist/skins/skin-yellow.css?id=fc7adb943668ac69fe4b646625a7571f",
+ "/css/dist/skins/skin-purple-dark.css": "/css/dist/skins/skin-purple-dark.css?id=5f7e5307fa12a54195d2000b5b5b5076",
+ "/css/dist/skins/skin-purple.css": "/css/dist/skins/skin-purple.css?id=cf6c8c340420724b02d6e787ef9bded5",
+ "/css/dist/skins/skin-red-dark.css": "/css/dist/skins/skin-red-dark.css?id=0f4baf95eb4bb23cf837007e61cb666e",
+ "/css/dist/skins/skin-black-dark.css": "/css/dist/skins/skin-black-dark.css?id=067d7b5d630f23d68ea3b1122527cb04",
+ "/css/dist/skins/skin-black.css": "/css/dist/skins/skin-black.css?id=1f33ca3d860461c1127ec465ab3ebb6b",
+ "/css/dist/skins/skin-green-dark.css": "/css/dist/skins/skin-green-dark.css?id=8f449de09e00c15481b144b44b1a7185",
+ "/css/dist/skins/skin-green.css": "/css/dist/skins/skin-green.css?id=b48f4d8af0e1ca5621c161e93951109f",
+ "/css/dist/skins/skin-contrast.css": "/css/dist/skins/skin-contrast.css?id=fc501683e0cb04a8717593610d215baf",
+ "/css/dist/skins/skin-red.css": "/css/dist/skins/skin-red.css?id=b9a74ec0cd68f83e7480d5ae39919beb",
+ "/css/dist/all.css": "/css/dist/all.css?id=62814c5dd9ee8f9d76a24272b590131c",
"/css/blue.png": "/css/blue.png?id=e83a6c29e04fe851f2122815b2e4b150",
"/css/blue@2x.png": "/css/blue@2x.png?id=51135dd4d24f88f5de0b2414bd51dac5",
"/css/dist/signature-pad.css": "/css/dist/signature-pad.css?id=6a89d3cd901305e66ced1cf5f13147f7",
@@ -34,20 +34,20 @@
"/css/dist/bootstrap-table.css": "/css/dist/bootstrap-table.css?id=ee4896df8b8f008ce73a9a0c2549aefd",
"/js/build/vendor.js": "/js/build/vendor.js?id=47ecbb4bb3b0e02315f391caadbdf971",
"/js/dist/bootstrap-table.js": "/js/dist/bootstrap-table.js?id=14d9a2affec7b066d20fcba2e6e67ad2",
- "/js/dist/all.js": "/js/dist/all.js?id=4f9355ac85d380301f6f62e55b1a6e5e",
- "/css/dist/skins/skin-green.min.css": "/css/dist/skins/skin-green.min.css?id=0a82a6ae6bb4e58fe62d162c4fb50397",
- "/css/dist/skins/skin-green-dark.min.css": "/css/dist/skins/skin-green-dark.min.css?id=c0d21166315b7c2cdd4819fa4a5e4d1e",
- "/css/dist/skins/skin-black.min.css": "/css/dist/skins/skin-black.min.css?id=76482123f6c70e866d6b971ba91de7bb",
- "/css/dist/skins/skin-black-dark.min.css": "/css/dist/skins/skin-black-dark.min.css?id=1c0f59079342d1a10099bf41d2e46f59",
- "/css/dist/skins/skin-blue.min.css": "/css/dist/skins/skin-blue.min.css?id=f677207c6cf9678eb539abecb408c374",
- "/css/dist/skins/skin-blue-dark.min.css": "/css/dist/skins/skin-blue-dark.min.css?id=57e634d63101d3613f4c73aaa2e3f50a",
- "/css/dist/skins/skin-yellow.min.css": "/css/dist/skins/skin-yellow.min.css?id=7b315b9612b8fde8f9c5b0ddb6bba690",
- "/css/dist/skins/skin-yellow-dark.min.css": "/css/dist/skins/skin-yellow-dark.min.css?id=5120ce6a4b70d11bbc84a5125aa31949",
- "/css/dist/skins/skin-red.min.css": "/css/dist/skins/skin-red.min.css?id=44bf834f2110504a793dadec132a5898",
- "/css/dist/skins/skin-red-dark.min.css": "/css/dist/skins/skin-red-dark.min.css?id=6ea1eecb7f939256c373c92f58749e72",
- "/css/dist/skins/skin-purple.min.css": "/css/dist/skins/skin-purple.min.css?id=6fe68325d5356197672c27bc77cedcb4",
- "/css/dist/skins/skin-purple-dark.min.css": "/css/dist/skins/skin-purple-dark.min.css?id=713b1205aa2d7c9db282f8cd5754c0e4",
- "/css/dist/skins/skin-orange.min.css": "/css/dist/skins/skin-orange.min.css?id=6f0563e726c2fe4fab4026daaa5bfdf2",
- "/css/dist/skins/skin-orange-dark.min.css": "/css/dist/skins/skin-orange-dark.min.css?id=f343f659ca1d45534d2c2c3cc30fb619",
- "/css/dist/skins/skin-contrast.min.css": "/css/dist/skins/skin-contrast.min.css?id=8e538625ebd4b8096e150d1aa483547b"
+ "/js/dist/all.js": "/js/dist/all.js?id=56e75b479d84630e693031efed58e1ad",
+ "/css/dist/skins/skin-green.min.css": "/css/dist/skins/skin-green.min.css?id=b48f4d8af0e1ca5621c161e93951109f",
+ "/css/dist/skins/skin-green-dark.min.css": "/css/dist/skins/skin-green-dark.min.css?id=8f449de09e00c15481b144b44b1a7185",
+ "/css/dist/skins/skin-black.min.css": "/css/dist/skins/skin-black.min.css?id=1f33ca3d860461c1127ec465ab3ebb6b",
+ "/css/dist/skins/skin-black-dark.min.css": "/css/dist/skins/skin-black-dark.min.css?id=067d7b5d630f23d68ea3b1122527cb04",
+ "/css/dist/skins/skin-blue.min.css": "/css/dist/skins/skin-blue.min.css?id=392cc93cfc0be0349bab9697669dd091",
+ "/css/dist/skins/skin-blue-dark.min.css": "/css/dist/skins/skin-blue-dark.min.css?id=bf6f6c2270110b3b29f2f3af7e07636d",
+ "/css/dist/skins/skin-yellow.min.css": "/css/dist/skins/skin-yellow.min.css?id=fc7adb943668ac69fe4b646625a7571f",
+ "/css/dist/skins/skin-yellow-dark.min.css": "/css/dist/skins/skin-yellow-dark.min.css?id=b23ea958779a62474f398ffab9da7ba1",
+ "/css/dist/skins/skin-red.min.css": "/css/dist/skins/skin-red.min.css?id=b9a74ec0cd68f83e7480d5ae39919beb",
+ "/css/dist/skins/skin-red-dark.min.css": "/css/dist/skins/skin-red-dark.min.css?id=0f4baf95eb4bb23cf837007e61cb666e",
+ "/css/dist/skins/skin-purple.min.css": "/css/dist/skins/skin-purple.min.css?id=cf6c8c340420724b02d6e787ef9bded5",
+ "/css/dist/skins/skin-purple-dark.min.css": "/css/dist/skins/skin-purple-dark.min.css?id=5f7e5307fa12a54195d2000b5b5b5076",
+ "/css/dist/skins/skin-orange.min.css": "/css/dist/skins/skin-orange.min.css?id=268041e902b019730c23ee3875838005",
+ "/css/dist/skins/skin-orange-dark.min.css": "/css/dist/skins/skin-orange-dark.min.css?id=c3aebf96518113fe22517a67c6ec1dc1",
+ "/css/dist/skins/skin-contrast.min.css": "/css/dist/skins/skin-contrast.min.css?id=fc501683e0cb04a8717593610d215baf"
}
diff --git a/resources/views/models/custom_fields_form.blade.php b/resources/views/models/custom_fields_form.blade.php
index 70f1f85374..f73a93903f 100644
--- a/resources/views/models/custom_fields_form.blade.php
+++ b/resources/views/models/custom_fields_form.blade.php
@@ -19,7 +19,7 @@
@foreach ($field->formatFieldValuesAsArray() as $key => $value)
diff --git a/snipeit.sh b/snipeit.sh
index ab190aac9c..7479df3576 100755
--- a/snipeit.sh
+++ b/snipeit.sh
@@ -14,6 +14,20 @@
# #
# Feel free to modify, but please give #
# credit where it's due. Thanks! #
+# #
+# Updated Snipe-IT Install Script #
+# Update created by Aaron Myers #
+# Change log #
+# * Added support for CentOS/Rocky 9 #
+# * Fixed CentOS 7 repository for PHP 7.4 #
+# * Removed support for CentOS 6 #
+# * Removed support for Ubuntu < 18.04 #
+# * Removed support for Ubuntu 21 (EOL) #
+# * Removed support for Debian < 9 (EOL) #
+# * Fixed permissions issue with Laravel cache #
+# * Moved OS check to start of script #
+# * Fixed timezone awk #
+# * Minor display and logging improvements #
######################################################
# Parse arguments
@@ -68,6 +82,8 @@ clear
readonly APP_USER="snipeitapp"
readonly APP_NAME="snipeit"
readonly APP_PATH="/var/www/html/$APP_NAME"
+readonly APP_LOG="/var/log/snipeit-install.log"
+readonly COMPOSER_PATH="/home/$APP_USER"
progress () {
spin[0]="-"
@@ -93,9 +109,17 @@ log () {
fi
}
+eol () {
+ if [[ "$distro" == "Ubuntu" ]] || [[ "$distro" == "Debian" ]] || [[ "$distro" == "Raspbian" ]] ; then
+ echo -e "\e[31m** \n $distro version $version ($codename) has reached end of life (EOL) and is not supported\n**\e[0m"
+ else
+ echo "$distro version $version has reached end of life (EOL) and is not supported"
+ fi
+}
+
install_packages () {
case $distro in
- ubuntu|debian)
+ Ubuntu|Debian)
for p in $PACKAGES; do
if dpkg -s "$p" >/dev/null 2>&1; then
echo " * $p already installed"
@@ -105,7 +129,7 @@ install_packages () {
fi
done;
;;
- raspbian)
+ Raspbian)
for p in $PACKAGES; do
if dpkg -s "$p" >/dev/null 2>&1; then
echo " * $p already installed"
@@ -115,7 +139,7 @@ install_packages () {
fi
done;
;;
- centos)
+ Centos)
for p in $PACKAGES; do
if yum list installed "$p" >/dev/null 2>&1; then
echo " * $p already installed"
@@ -125,7 +149,7 @@ install_packages () {
fi
done;
;;
- fedora)
+ Fedora)
for p in $PACKAGES; do
if dnf list installed "$p" >/dev/null 2>&1; then
echo " * $p already installed"
@@ -156,18 +180,18 @@ create_virtualhost () {
create_user () {
echo "* Creating Snipe-IT user."
- if [[ "$distro" == "ubuntu" ]] || [[ "$distro" == "debian" ]] || [[ "$distro" == "raspbian" ]] ; then
- adduser --quiet --disabled-password --gecos 'Snipe-IT User' "$APP_USER"
+ if [[ "$distro" == "Ubuntu" ]] || [[ "$distro" == "Debian" ]] || [[ "$distro" == "Raspbian" ]] ; then
+ /usr/sbin/adduser --quiet --disabled-password --gecos 'Snipe-IT User' "$APP_USER"
+ su -c "/usr/sbin/usermod -a -G "$apache_group" "$APP_USER""
else
adduser "$APP_USER"
+ usermod -a -G "$apache_group" "$APP_USER"
fi
-
- usermod -a -G "$apache_group" "$APP_USER"
}
run_as_app_user () {
if ! hash sudo 2>/dev/null; then
- su -c "$@" $APP_USER
+ su - $APP_USER -c "$@"
else
sudo -i -u $APP_USER "$@"
fi
@@ -176,31 +200,39 @@ run_as_app_user () {
install_composer () {
# https://getcomposer.org/doc/faqs/how-to-install-composer-programmatically.md
EXPECTED_SIGNATURE="$(wget -q -O - https://composer.github.io/installer.sig)"
- run_as_app_user php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
- ACTUAL_SIGNATURE="$(run_as_app_user php -r "echo hash_file('SHA384', 'composer-setup.php');")"
- if [ "$EXPECTED_SIGNATURE" != "$ACTUAL_SIGNATURE" ]
- then
- >&2 echo 'ERROR: Invalid composer installer signature'
- run_as_app_user rm composer-setup.php
- exit 1
+ if [[ "$distro" == "Debian" ]]; then
+ wget -q -O $COMPOSER_PATH/composer-setup.php https://getcomposer.org/installer && chown $APP_USER:$APP_USER $COMPOSER_PATH/composer-setup.php
+ ACTUAL_SIGNATURE="$(sha384sum $COMPOSER_PATH/composer-setup.php | awk '{ print $1 }')"
+ else
+ run_as_app_user php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
+ ACTUAL_SIGNATURE="$(run_as_app_user php -r "echo hash_file('SHA384', 'composer-setup.php');")"
fi
- run_as_app_user php composer-setup.php
- run_as_app_user rm composer-setup.php
+ if [ "$EXPECTED_SIGNATURE" != "$ACTUAL_SIGNATURE" ]; then
+ >?&2 echo 'ERROR: Invalid composer installer signature'
+ exit 1
+ fi
+
+ if [[ "$distro" == "Debian" ]]; then
+ run_as_app_user "php $COMPOSER_PATH/composer-setup.php"
+ run_as_app_user "rm $COMPOSER_PATH/composer-setup.php"
+ else
+ run_as_app_user php composer-setup.php
+ run_as_app_user rm composer-setup.php
+ fi
mv "$(eval echo ~$APP_USER)"/composer.phar /usr/local/bin/composer
}
install_snipeit () {
create_user
-
echo "* Creating MariaDB Database/User."
- echo "* Please Input your MariaDB root password:"
- mysql -u root -p --execute="CREATE DATABASE snipeit;GRANT ALL PRIVILEGES ON snipeit.* TO snipeit@localhost IDENTIFIED BY '$mysqluserpw';"
+ mysql -u root --execute="CREATE DATABASE snipeit;GRANT ALL PRIVILEGES ON snipeit.* TO snipeit@localhost IDENTIFIED BY '$mysqluserpw';"
- echo "* Cloning Snipe-IT from github to the web directory."
- log "git clone https://github.com/snipe/snipe-it $APP_PATH"
+ echo -e "\n\n* Cloning Snipe-IT from github to the web directory."
+ log "git clone https://github.com/snipe/snipe-it $APP_PATH" & pid=$!
+ progress
echo "* Configuring .env file."
cp "$APP_PATH/.env.example" "$APP_PATH/.env"
@@ -218,7 +250,7 @@ install_snipeit () {
install_composer
echo "* Setting permissions."
- for chmod_dir in "$APP_PATH/storage" "$APP_PATH/public/uploads"; do
+ for chmod_dir in "$APP_PATH/storage" "$APP_PATH/public/uploads" "$APP_PATH/bootstrap/cache"; do
chmod -R 775 "$chmod_dir"
done
@@ -226,9 +258,15 @@ install_snipeit () {
echo "* Running composer."
# We specify the path to composer because CentOS lacks /usr/local/bin in $PATH when using sudo
- run_as_app_user /usr/local/bin/composer install --no-dev --prefer-source --working-dir "$APP_PATH"
+ if [[ "$distro" == "Debian" ]]; then
+ run_as_app_user "/usr/local/bin/composer install --no-dev --prefer-source --working-dir "$APP_PATH""
+ else
+ echo "* This can take 5 minutes or more. Tail $APP_LOG for more full command output." & pid=$!
+ progress
+ log "run_as_app_user /usr/local/bin/composer install --no-dev --prefer-source --working-dir "$APP_PATH""
+ fi
- sudo chgrp -R "$apache_group" "$APP_PATH/vendor"
+ chgrp -R "$apache_group" "$APP_PATH/vendor"
echo "* Generating the application key."
log "php $APP_PATH/artisan key:generate --force"
@@ -237,7 +275,7 @@ install_snipeit () {
log "php $APP_PATH/artisan migrate --force"
echo "* Creating scheduler cron."
- (run_as_app_user crontab -l ; echo "* * * * * /usr/bin/php $APP_PATH/artisan schedule:run >> /dev/null 2>&1") | run_as_app_user crontab -
+ (echo "* * * * * /usr/bin/php $APP_PATH/artisan schedule:run >> /dev/null 2>&1") | run_as_app_user crontab -
}
set_firewall () {
@@ -301,37 +339,39 @@ echo '
'
echo ""
-echo " Welcome to Snipe-IT Inventory Installer for CentOS, Rocky, Fedora, Debian and Ubuntu!"
+echo " Welcome to Snipe-IT Inventory Installer for CentOS, Rocky, Fedora, Debian, and Ubuntu!"
+echo ""
+echo " Installation log located: $APP_LOG"
echo ""
shopt -s nocasematch
case $distro in
*ubuntu*)
echo " The installer has detected $distro version $version codename $codename."
- distro=ubuntu
+ distro=Ubuntu
apache_group=www-data
apachefile=/etc/apache2/sites-available/$APP_NAME.conf
;;
- *Raspbian*)
+ *raspbian*)
echo " The installer has detected $distro version $version codename $codename."
- distro=raspbian
+ distro=Raspbian
apache_group=www-data
apachefile=/etc/apache2/sites-available/$APP_NAME.conf
;;
*Debian|debian*)
echo " The installer has detected $distro version $version codename $codename."
- distro=debian
+ distro=Debian
apache_group=www-data
apachefile=/etc/apache2/sites-available/$APP_NAME.conf
;;
*centos*|*redhat*|*ol*|*rhel*|*rocky*)
echo " The installer has detected $distro version $version."
- distro=centos
+ distro=Centos
apache_group=apache
apachefile=/etc/httpd/conf.d/$APP_NAME.conf
;;
*fedora*)
echo " The installer has detected $distro version $version."
- distro=fedora
+ distro=Fedora
apache_group=apache
apachefile=/etc/httpd/conf.d/$APP_NAME.conf
;;
@@ -342,40 +382,46 @@ case $distro in
esac
shopt -u nocasematch
-echo -n " Q. What is the FQDN of your server? ($(hostname --fqdn)): "
-read -r fqdn
-if [ -z "$fqdn" ]; then
- readonly fqdn="$(hostname --fqdn)"
-fi
-echo " Setting to $fqdn"
-echo ""
+set_fqdn () {
+ echo -n " Q. What is the FQDN of your server? ($(hostname --fqdn)): "
+ read -r fqdn
+ if [ -z "$fqdn" ]; then
+ readonly fqdn="$(hostname --fqdn)"
+ fi
+ echo " Setting to $fqdn"
+ echo ""
+}
-ans=default
-until [[ $ans == "yes" ]] || [[ $ans == "no" ]]; do
-echo -n " Q. Do you want to automatically create the database user password? (y/n) "
-read -r setpw
+set_dbpass () {
+ ans=default
+ until [[ $ans == "yes" ]] || [[ $ans == "no" ]]; do
+ echo -n " Q. Do you want to automatically create the SnipeIT database user password? (y/n) "
+ read -r setpw
-case $setpw in
- [yY] | [yY][Ee][Ss] )
- mysqluserpw="$(< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c16; echo)"
- echo ""
- ans="yes"
- ;;
- [nN] | [n|N][O|o] )
- echo -n " Q. What do you want your snipeit user password to be?"
- read -rs mysqluserpw
- echo ""
- ans="no"
- ;;
- *) echo " Invalid answer. Please type y or n"
- ;;
-esac
-done
+ case $setpw in
+ [yY] | [yY][Ee][Ss] )
+ mysqluserpw="$(< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c16; echo)"
+ echo ""
+ ans="yes"
+ ;;
+ [nN] | [n|N][O|o] )
+ echo -n " Q. What do you want your snipeit user password to be?"
+ read -rs mysqluserpw
+ echo ""
+ ans="no"
+ ;;
+ *) echo " Invalid answer. Please type y or n"
+ ;;
+ esac
+ done
+}
case $distro in
- debian)
+ Debian)
if [[ "$version" =~ ^11 ]]; then
# Install for Debian 11.x
+ set_fqdn
+ set_dbpass
tzone=$(cat /etc/timezone)
echo "* Adding PHP repository."
@@ -393,21 +439,26 @@ case $distro in
echo "* Configuring Apache."
create_virtualhost
- log "a2enmod rewrite"
- log "a2ensite $APP_NAME.conf"
- rename_default_vhost
+ /usr/sbin/a2enmod rewrite
+ /usr/sbin/a2ensite $APP_NAME.conf
+ rename_default_vhost
set_hosts
- echo "* Securing MariaDB."
- /usr/bin/mysql_secure_installation
-
install_snipeit
echo "* Restarting Apache httpd."
- log "service apache2 restart"
+ /usr/sbin/service apache2 restart
+
+ echo "* Clearing cache and setting final permissions."
+ chmod 777 -R $APP_PATH/storage/framework/cache/
+ run_as_app_user "php $APP_PATH/artisan cache:clear"
+ chmod 775 -R $APP_PATH/storage/
+
elif [[ "$version" =~ ^10 ]]; then
# Install for Debian 10.x
+ set_fqdn
+ set_dbpass
tzone=$(cat /etc/timezone)
echo "* Adding PHP repository."
@@ -419,99 +470,41 @@ case $distro in
log "apt-get update && apt-get -y upgrade" & pid=$!
progress
- echo "* Installing Apache httpd, PHP, MariaDB and other requirements."
- PACKAGES="mariadb-server mariadb-client apache2 libapache2-mod-php7.3 php7.3 php7.3-mcrypt php7.3-curl php7.3-mysql php7.3-gd php7.3-ldap php7.3-zip php7.3-mbstring php7.3-xml php7.3-bcmath curl git unzip"
- install_packages
-
- echo "* Configuring Apache."
- create_virtualhost
- log "a2enmod rewrite"
- log "a2ensite $APP_NAME.conf"
- rename_default_vhost
-
- set_hosts
-
- echo "* Securing MariaDB."
- /usr/bin/mysql_secure_installation
-
- install_snipeit
-
- echo "* Restarting Apache httpd."
- log "service apache2 restart"
- elif [[ "$version" =~ ^9 ]]; then
- # Install for Debian 9.x
- tzone=$(cat /etc/timezone)
-
- echo "* Adding PHP repository."
- log "apt-get install -y apt-transport-https"
- log "wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg"
- echo "deb https://packages.sury.org/php/ $codename main" > /etc/apt/sources.list.d/php.list
-
- echo -n "* Updating installed packages."
- log "apt-get update && apt-get -y upgrade" & pid=$!
- progress
-
echo "* Installing Apache httpd, PHP, MariaDB and other requirements."
PACKAGES="mariadb-server mariadb-client apache2 libapache2-mod-php7.4 php7.4 php7.4-mcrypt php7.4-curl php7.4-mysql php7.4-gd php7.4-ldap php7.4-zip php7.4-mbstring php7.4-xml php7.4-bcmath curl git unzip"
install_packages
echo "* Configuring Apache."
create_virtualhost
- log "a2enmod rewrite"
- log "a2ensite $APP_NAME.conf"
- rename_default_vhost
+ /usr/sbin/a2enmod rewrite
+ /usr/sbin/a2ensite $APP_NAME.conf
+ rename_default_vhost
set_hosts
- echo "* Securing MariaDB."
- /usr/bin/mysql_secure_installation
-
install_snipeit
echo "* Restarting Apache httpd."
- log "service apache2 restart"
- elif [[ "$version" =~ ^8 ]]; then
- # Install for Debian 8.x
- tzone=$(cat /etc/timezone)
+ /usr/sbin/service apache2 restart
- echo "* Adding MariaDB and ppa:ondrej/php repositories."
- log "apt-get install -y software-properties-common apt-transport-https"
- log "apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db"
- log "add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://nyc2.mirrors.digitalocean.com/mariadb/repo/10.1/debian $codename main'"
- log "wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg"
- echo "deb https://packages.sury.org/php/ $codename main" > /etc/apt/sources.list.d/php.list
+ echo "* Clearing cache and setting final permissions."
+ chmod 777 -R $APP_PATH/storage/framework/cache/
+ run_as_app_user "php $APP_PATH/artisan cache:clear"
+ chmod 775 -R $APP_PATH/storage/
- echo -n "* Updating installed packages."
- log "apt-get update && apt-get -y upgrade" & pid=$!
- progress
-
- echo "* Installing Apache httpd, PHP, MariaDB and other requirements."
- PACKAGES="mariadb-server mariadb-client php7.4 php7.4-mcrypt php7.4-curl php7.4-mysql php7.4-gd php7.4-ldap php7.4-zip php7.4-mbstring php7.4-xml php7.4-bcmath curl git unzip"
- install_packages
-
- echo "* Configuring Apache."
- create_virtualhost
- log "a2enmod rewrite"
- log "a2ensite $APP_NAME.conf"
- rename_default_vhost
-
- set_hosts
-
- echo "* Securing MariaDB."
- /usr/bin/mysql_secure_installation
-
- install_snipeit
-
- echo "* Restarting Apache httpd."
- log "service apache2 restart"
+ elif [[ "$version" =~ ^9 ]]; then
+ eol
+ exit 1
else
echo "Unsupported Debian version. Version found: $version"
exit 1
fi
;;
- ubuntu)
- if [ "${version//./}" -ge "1804" ]; then
- # Install for Ubuntu 18.04
+ Ubuntu)
+if [ "${version//./}" -ge "2204" ]; then
+ # Install for Ubuntu 22.04
+ set_fqdn
+ set_dbpass
tzone=$(cat /etc/timezone)
echo -n "* Updating installed packages."
@@ -519,7 +512,7 @@ case $distro in
progress
echo "* Installing Apache httpd, PHP, MariaDB and other requirements."
- PACKAGES="mariadb-server mariadb-client apache2 libapache2-mod-php php php-mcrypt php-curl php-mysql php-gd php-ldap php-zip php-mbstring php-xml php-bcmath curl git unzip"
+ PACKAGES="cron mariadb-server mariadb-client apache2 libapache2-mod-php php php-mcrypt php-curl php-mysql php-gd php-ldap php-zip php-mbstring php-xml php-bcmath curl git unzip"
install_packages
echo "* Configuring Apache."
@@ -528,36 +521,76 @@ case $distro in
log "phpenmod mbstring"
log "a2enmod rewrite"
log "a2ensite $APP_NAME.conf"
- rename_default_vhost
+ rename_default_vhost
set_hosts
echo "* Starting MariaDB."
log "systemctl start mariadb.service"
- echo "* Securing MariaDB."
- /usr/bin/mysql_secure_installation
+ install_snipeit
+
+ echo "* Restarting Apache httpd."
+ log "systemctl restart apache2"
+
+ echo "* Clearing cache and setting final permissions."
+ chmod 777 -R $APP_PATH/storage/framework/cache/
+ log "run_as_app_user php $APP_PATH/artisan cache:clear"
+ chmod 775 -R $APP_PATH/storage/
+ elif [ "${version//./}" == "2110" ]; then
+ # Ubuntu 21.10 is no longer supported
+ echo "Unsupported Ubuntu version. Version found: $version"
+ exit 1
+ elif [ "${version//./}" == "2004" ]; then
+ # Install for Ubuntu 20.04
+ set_fqdn
+ set_dbpass
+ tzone=$(cat /etc/timezone)
+
+ echo -n "* Updating installed packages."
+ log "apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -y upgrade" & pid=$!
+ progress
+
+ echo "* Installing Apache httpd, PHP, MariaDB and other requirements."
+ PACKAGES="cron mariadb-server mariadb-client apache2 libapache2-mod-php php php-mcrypt php-curl php-mysql php-gd php-ldap php-zip php-mbstring php-xml php-bcmath curl git unzip"
+ install_packages
+
+ echo "* Configuring Apache."
+ create_virtualhost
+ log "phpenmod mcrypt"
+ log "phpenmod mbstring"
+ log "a2enmod rewrite"
+ log "a2ensite $APP_NAME.conf"
+ rename_default_vhost
+
+ set_hosts
+
+ echo "* Starting MariaDB."
+ log "systemctl start mariadb.service"
install_snipeit
echo "* Restarting Apache httpd."
log "systemctl restart apache2"
- elif [ "$version" == "16.04" ]; then
- # Install for Ubuntu 16.04
+
+ echo "* Clearing cache and setting final permissions."
+ chmod 777 -R $APP_PATH/storage/framework/cache/
+ log "run_as_app_user php $APP_PATH/artisan cache:clear"
+ chmod 775 -R $APP_PATH/storage/
+ elif [ "${version//./}" == "1804" ]; then
+ # Install for Ubuntu 18.04+
+ set_fqdn
+ set_dbpass
tzone=$(cat /etc/timezone)
- echo "* Adding MariaDB and ppa:ondrej/php repositories."
- log "apt-get install -y software-properties-common"
- log "apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8"
- log "add-apt-repository 'deb [arch=amd64,i386] http://nyc2.mirrors.digitalocean.com/mariadb/repo/10.1/ubuntu $codename main'"
+ echo -n "* Updating installed packages."
+ log "apt-get update"
+ log "DEBIAN_FRONTEND=noninteractive apt-get -y upgrade" & pid=$!
+ progress
log "add-apt-repository -y ppa:ondrej/php"
- echo -n "* Updating installed packages."
- log "apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -y upgrade" & pid=$!
- progress
-
echo "* Installing Apache httpd, PHP, MariaDB and other requirements."
- PACKAGES="mariadb-server mariadb-client apache2 libapache2-mod-php7.4 php7.4 php7.4-mcrypt php7.4-curl php7.4-mysql php7.4-gd php7.4-ldap php7.4-zip php7.4-mbstring php7.4-xml php7.4-bcmath curl git unzip"
+ PACKAGES="cron mariadb-server mariadb-client apache2 libapache2-mod-php php php-mcrypt php-curl php-mysql php-gd php-ldap php-zip php-mbstring php-xml php-bcmath curl git unzip"
install_packages
echo "* Configuring Apache."
@@ -566,64 +599,32 @@ case $distro in
log "phpenmod mbstring"
log "a2enmod rewrite"
log "a2ensite $APP_NAME.conf"
+ rename_default_vhost
set_hosts
echo "* Starting MariaDB."
- log "service mysql start"
-
- echo "* Securing MariaDB."
- /usr/bin/mysql_secure_installation
+ log "systemctl start mariadb.service"
install_snipeit
echo "* Restarting Apache httpd."
- log "service apache2 restart"
- elif [ "$version" == "14.04" ]; then
- # Install for Ubuntu 14.04
- tzone=$(cat /etc/timezone)
+ log "systemctl restart apache2"
- echo "* Adding MariaDB and ppa:ondrej/php repositories."
- log "apt-get install -y software-properties-common"
- log "apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db"
- log "add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://nyc2.mirrors.digitalocean.com/mariadb/repo/10.1/ubuntu $codename main'"
- log "add-apt-repository ppa:ondrej/php -y"
-
- echo -n "* Updating installed packages."
- log "apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -y upgrade" & pid=$!
- progress
-
- echo "* Installing Apache httpd, PHP, MariaDB and other requirements."
- PACKAGES="mariadb-server mariadb-client php7.4 php7.4-mcrypt php7.4-curl php7.4-mysql php7.4-gd php7.4-ldap php7.4-zip php7.4-mbstring php7.4-xml php7.4-bcmath curl git unzip"
- install_packages
-
- echo "* Configuring Apache."
- create_virtualhost
- log "phpenmod mcrypt"
- log "phpenmod mbstring"
- log "a2enmod rewrite"
- log "a2ensite $APP_NAME.conf"
-
- set_hosts
-
- echo "* Starting MariaDB."
- log "service mysql start"
-
- echo "* Securing MariaDB."
- /usr/bin/mysql_secure_installation
-
- install_snipeit
-
- echo "* Restarting Apache httpd."
- log "service apache2 restart"
+ echo "* Clearing cache and setting final permissions."
+ chmod 777 -R $APP_PATH/storage/framework/cache/
+ log "run_as_app_user php $APP_PATH/artisan cache:clear"
+ chmod 775 -R $APP_PATH/storage/
else
echo "Unsupported Ubuntu version. Version found: $version"
exit 1
fi
;;
- raspbian)
+ Raspbian)
if [[ "$version" =~ ^10 ]]; then
# Install for Raspbian 9.x
+ set_fqdn
+ set_dbpass
tzone=$(cat /etc/timezone)
cat >/etc/apt/sources.list.d/10-buster.list <> "$mariadbRepo"
-
- log "yum -y install wget epel-release"
- log "yum -y install https://centos6.iuscommunity.org/ius-release.rpm"
- log "rpm --import /etc/pki/rpm-gpg/IUS-COMMUNITY-GPG-KEY"
-
- echo "* Installing Apache httpd, PHP, MariaDB and other requirements."
- PACKAGES="httpd mariadb-server git unzip php71u php71u-mysqlnd php71u-bcmath php71u-cli php71u-common php71u-embedded php71u-gd php71u-mbstring php71u-mcrypt php71u-ldap php71u-json php71u-simplexml php71u-process"
- install_packages
-
- echo "* Configuring Apache."
- create_virtualhost
-
- echo "* Setting MariaDB to start on boot and starting MariaDB."
- log "chkconfig mysql on"
- log "/sbin/service mysql start"
-
- set_hosts
-
- echo "* Securing MariaDB."
- /usr/bin/mysql_secure_installation
-
- install_snipeit
-
- if /sbin/service iptables status >/dev/null 2>&1; then
- echo "* Configuring iptables."
- iptables -I INPUT 1 -p tcp -m tcp --dport 80 -j ACCEPT
- iptables -I INPUT 1 -p tcp -m tcp --dport 443 -j ACCEPT
- service iptables save
- fi
-
- echo "* Setting Apache httpd to start on boot and starting service."
- log "chkconfig httpd on"
- log "/sbin/service httpd start"
+ eol
+ exit 1
elif [[ "$version" =~ ^7 ]]; then
# Install for CentOS/Redhat 7
+ set_fqdn
+ set_dbpass
tzone=$(timedatectl | gawk -F'[: ]' ' $9 ~ /zone/ {print $11}');
- echo "* Adding IUS, epel-release and MariaDB repositories."
- log "yum -y install wget epel-release"
- log "yum -y install https://centos7.iuscommunity.org/ius-release.rpm"
- log "rpm --import /etc/pki/rpm-gpg/IUS-COMMUNITY-GPG-KEY"
+ echo "* Adding Remi and EPEL-Release repositories."
+ log "yum -y install wget epel-release yum-utils" & pid=$!
+ progress
+ log "yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm" & pid=$!
+ progress
+ log "yum-config-manager --enable remi-php74"
echo "* Installing Apache httpd, PHP, MariaDB and other requirements."
- PACKAGES="httpd mariadb-server git unzip php71u php71u-mysqlnd php71u-bcmath php71u-cli php71u-common php71u-embedded php71u-gd php71u-mbstring php71u-mcrypt php71u-ldap php71u-json php71u-simplexml php71u-process"
+ PACKAGES="httpd mariadb-server git unzip php php-mysqlnd php-bcmath php-embedded php-gd php-mbstring php-mcrypt php-ldap php-json php-simplexml php-process php-zip"
install_packages
echo "* Configuring Apache."
@@ -742,30 +702,121 @@ EOL
log "systemctl enable mariadb.service"
log "systemctl start mariadb.service"
- echo "* Securing MariaDB."
- /usr/bin/mysql_secure_installation
+ install_snipeit
+
+ set_firewall
+
+ echo "* Setting Apache httpd to start on boot and starting service."
+ log "systemctl enable httpd.service"
+ log "systemctl restart httpd.service"
+
+ echo "* Clearing cache and setting final permissions."
+ chmod 777 -R $APP_PATH/storage/framework/cache/
+ log "run_as_app_user php $APP_PATH/artisan cache:clear"
+ chmod 775 -R $APP_PATH/storage/
+
+ set_selinux
+
+ elif [[ "$version" =~ ^8 ]]; then
+ # Install for CentOS/Redhat 8
+ set_fqdn
+ set_dbpass
+ tzone=$(timedatectl | grep "Time zone" | awk 'BEGIN { FS"("}; {print $3}');
+
+ echo "* Adding Remi and EPEL-Release repositories."
+ log "yum -y install wget epel-release yum-utils" & pid=$!
+ progress
+ log "yum -y install https://rpms.remirepo.net/enterprise/remi-release-8.rpm" & pid=$!
+ progress
+ log "rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-remi.el8"
+ log "dnf -y module enable php:remi-7.4" & pid=$!
+ progress
+
+ echo "* Installing Apache httpd, PHP, MariaDB and other requirements."
+ PACKAGES="httpd mariadb-server git unzip php php-mysqlnd php-bcmath php-embedded php-gd php-mbstring php-mcrypt php-ldap php-json php-simplexml php-process php-zip"
+ install_packages
+
+ echo "* Configuring Apache."
+ create_virtualhost
+
+ set_hosts
+
+ echo "* Setting MariaDB to start on boot and starting MariaDB."
+ log "systemctl enable mariadb.service"
+ log "systemctl start mariadb.service"
install_snipeit
set_firewall
+ echo "* Setting Apache httpd to start on boot and starting service."
+ log "systemctl enable httpd.service"
+ log "systemctl restart httpd.service"
+
+ echo "* Clearing cache and setting final permissions."
+ chmod 777 -R $APP_PATH/storage/framework/cache/
+ log "run_as_app_user php $APP_PATH/artisan cache:clear"
+ chmod 775 -R $APP_PATH/storage/
+
set_selinux
+ elif [[ "$version" =~ ^9 ]]; then
+ # Install for CentOS/Redhat 9
+ set_fqdn
+ set_dbpass
+ tzone=$(timedatectl | grep "Time zone" | awk 'BEGIN { FS"("}; {print $3}');
+
+ echo "* Adding EPEL-release repository."
+ log "dnf -y install wget epel-release" & pid=$!
+ progress
+
+ echo "* Installing Apache httpd, PHP, MariaDB, and other requirements."
+ PACKAGES="httpd mariadb-server git unzip php-mysqlnd php-bcmath php-cli php-embedded php-gd php-mbstring php-ldap php-simplexml php-process php-sodium php-pecl-zip php-fpm"
+ install_packages
+
+ echo "* Configuring Apache."
+ create_virtualhost
+
+ set_hosts
+
+ echo "* Setting MariaDB to start on boot and starting MariaDB."
+ log "systemctl enable mariadb.service"
+ log "systemctl start mariadb.service"
+
+ install_snipeit
+
+ set_firewall & pid=$!
+ progress
+
echo "* Setting Apache httpd to start on boot and starting service."
log "systemctl enable httpd.service"
log "systemctl restart httpd.service"
+
+ echo "* Setting php-fpm to start on boot and starting service."
+ log "systemctl enable php-fpm.service"
+ log "systemctl restart php-fpm.service"
+
+ echo "* Clearing cache and setting final permissions."
+ chmod 777 -R $APP_PATH/storage/framework/cache/
+ log "run_as_app_user php $APP_PATH/artisan cache:clear"
+ chmod 775 -R $APP_PATH/storage/
+
+ set_selinux
+
else
echo "Unsupported CentOS version. Version found: $version"
exit 1
fi
;;
- fedora)
- if [ "$version" -ge 26 ]; then
- # Install for Fedora 26+
- tzone=$(timedatectl | gawk -F'[: ]' ' $9 ~ /zone/ {print $11}');
+ Fedora)
+ if [[ "$version" =~ ^36 ]]; then
+ # Install for Fedora 36+
+ set_fqdn
+ set_dbpass
+ tzone=$(timedatectl | grep "Time zone" | awk 'BEGIN { FS"("}; {print $3}');
echo "* Installing Apache httpd, PHP, MariaDB and other requirements."
- PACKAGES="httpd mariadb-server git unzip php php-mysqlnd php-bcmath php-cli php-common php-embedded php-gd php-mbstring php-mcrypt php-ldap php-json php-simplexml"
+ PACKAGES="wget httpd mariadb-server git unzip php php-mysqlnd php-bcmath php-cli php-common php-embedded php-gd php-mbstring php-mcrypt php-ldap php-simplexml php-process php-sodium php-pecl-zip php-fpm"
install_packages
echo "* Configuring Apache."
@@ -777,27 +828,39 @@ EOL
log "systemctl enable mariadb.service"
log "systemctl start mariadb.service"
- echo "* Securing MariaDB."
- /usr/bin/mysql_secure_installation
-
install_snipeit
- set_firewall
-
- set_selinux
+ set_firewall & pid=$!
+ progress
echo "* Setting Apache httpd to start on boot and starting service."
log "systemctl enable httpd.service"
log "systemctl restart httpd.service"
+
+ echo "* Setting php-fpm to start on boot and starting service."
+ log "systemctl enable php-fpm.service"
+ log "systemctl restart php-fpm.service"
+
+ echo "* Clearing cache and setting final permissions."
+ chmod 777 -R $APP_PATH/storage/framework/cache/
+ log "run_as_app_user php $APP_PATH/artisan cache:clear"
+ chmod 775 -R $APP_PATH/storage/
+
+ set_selinux
else
echo "Unsupported Fedora version. Version found: $version"
exit 1
fi
+ ;;
+ *)
+ echo "Your OS was not detected correctly."
+ exit 1
esac
setupmail=default
until [[ $setupmail == "yes" ]] || [[ $setupmail == "no" ]]; do
-echo -n " Q. Do you want to configure mail server settings? (y/n) "
+echo " Q. Do you want to configure mail server settings now? This can be done later too. "
+echo -n " * You will need mail server address, port, user and password among other items. (y/n) "
read -r setupmail
case $setupmail in
@@ -855,5 +918,6 @@ echo ""
echo "* Cleaning up..."
rm -f snipeit.sh
rm -f install.sh
+echo "* Installation log located in $APP_LOG."
echo "* Finished!"
sleep 1