├── .dockerignore ├── .github ├── FUNDING.yml ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── config.yml ├── dependabot.yml └── workflows │ ├── main.yml │ └── manual.yml ├── CHANGELOG.md ├── Dockerfile ├── LICENSE ├── README.md ├── build-assets ├── custom-scripts │ └── .empty ├── scripts │ └── .empty └── src │ └── .empty ├── examples ├── docker-compose-no-proxy.yml └── docker-compose.yml └── install ├── assets └── defaults │ └── 30-freescout └── etc ├── cont-init.d └── 30-freescout └── nginx └── sites.available └── freescout.conf /.dockerignore: -------------------------------------------------------------------------------- 1 | examples/ 2 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: [tiredofit] 2 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: If something isn't working right.. 4 | title: '' 5 | labels: bug 6 | assignees: '' 7 | 8 | --- 9 | 10 | ### Summary 11 | 12 | 13 | 14 | 15 | ### Steps to reproduce 16 | 17 | 18 | 19 | 20 | ### What is the expected *correct* behavior? 21 | 22 | 23 | 24 | 25 | ### Relevant logs and/or screenshots 26 | 27 | 28 | 29 | ### Environment 30 | 31 | 32 | - Image version / tag: 33 | - Host OS: 34 | 35 |
36 | Any logs | docker-compose.yml 37 |
38 | 39 | 40 | 41 | ### Possible fixes 42 | 43 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea or feature 4 | title: '' 5 | labels: enhancement 6 | assignees: '' 7 | 8 | --- 9 | 10 | --- 11 | name: Feature Request 12 | about: Suggest an idea for this project 13 | 14 | --- 15 | 16 | **Description of the feature** 17 | 18 | 19 | **Benftits of feature** 20 | 21 | 22 | **Additional context** 23 | 24 | -------------------------------------------------------------------------------- /.github/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | # Maintain dependencies for GitHub Actions 4 | - package-ecosystem: "github-actions" 5 | directory: "/" 6 | schedule: 7 | interval: "daily" 8 | -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | ### Application Level Image CI - Freescout 2 | ### Dave Conroy 3 | 4 | name: 'Multi PHP Version Build' 5 | on: 6 | push: 7 | paths: 8 | - '**' 9 | - '!README.md' 10 | jobs: 11 | php81: 12 | uses: tiredofit/github_actions/.github/workflows/php81_alpine_amd64_arm64.yml@main 13 | secrets: inherit 14 | php82: 15 | uses: tiredofit/github_actions/.github/workflows/php82_alpine_amd64_arm64.yml@main 16 | secrets: inherit 17 | php83: 18 | uses: tiredofit/github_actions/.github/workflows/php83_alpine_amd64_arm64.yml@main 19 | secrets: inherit 20 | -------------------------------------------------------------------------------- /.github/workflows/manual.yml: -------------------------------------------------------------------------------- 1 | # Manual Workflow (Application) 2 | 3 | name: manual 4 | 5 | on: 6 | workflow_dispatch: 7 | inputs: 8 | Manual Build: 9 | description: 'Manual Build' 10 | required: false 11 | jobs: 12 | php81: 13 | uses: tiredofit/github_actions/.github/workflows/php81_alpine_amd64_arm64.yml@main 14 | secrets: inherit 15 | php82: 16 | uses: tiredofit/github_actions/.github/workflows/php82_alpine_amd64_arm64.yml@main 17 | secrets: inherit 18 | php83: 19 | uses: tiredofit/github_actions/.github/workflows/php83_alpine_amd64_arm64.yml@main 20 | secrets: inherit 21 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## 1.17.122 2025-06-03 2 | 3 | ### Added 4 | - FreeScout 1.8.182 5 | 6 | 7 | ## 1.17.121 2025-05-27 8 | 9 | ### Added 10 | - FreeScout 1.8.181 11 | 12 | 13 | ## 1.17.120 2025-05-22 14 | 15 | ### Added 16 | - FreeScout 1.8.180 17 | 18 | 19 | ## 1.17.119 2025-05-18 20 | 21 | ### Added 22 | - FreeScout 1.8.179 23 | 24 | 25 | ## 1.17.118 2025-05-15 26 | 27 | ### Added 28 | - FreeScout 1.8.178 29 | 30 | 31 | ## 1.17.117 2025-05-14 32 | 33 | ### Added 34 | - Actually use FreeScout 1.8.177 35 | 36 | 37 | ## 1.17.116 2025-05-13 38 | 39 | ### Added 40 | - FreeScout 1.8.177 41 | 42 | 43 | ## 1.17.115 2025-05-13 44 | 45 | ### Added 46 | - FreeScout 1.8.176 47 | 48 | 49 | ## 1.17.114 2025-05-07 50 | 51 | ### Added 52 | - Add EXPERIMENTAL_CRON_BACKGROUND undocumented variable to send artisan schedule:run to background with cron in attempt to address #199 53 | 54 | 55 | ## 1.17.113 2025-04-27 56 | 57 | ### Added 58 | - Bump base image version 59 | 60 | 61 | ## 1.17.112 2025-04-26 62 | 63 | ### Added 64 | - Pin to tiredofit/nginx-php-fpm:7.7.18 65 | - Free Scout 1.8.175 66 | 67 | 68 | ## 1.17.111 2025-04-04 69 | 70 | ### Added 71 | - Free Scout 1.8.174 72 | 73 | 74 | ## 1.17.110 2025-03-06 75 | 76 | ### Added 77 | - Add DB_SSL (default FALSE) environment variable to allow accomodate for MariaDB client defaulting to want to connect to SSL enabled host 78 | 79 | ### Changed 80 | - Rework SKIP_STORAGE_PERMISSIONS check introduced in last release to a TRUE/FALSE option 81 | 82 | 83 | ## 1.17.109 2025-03-04 84 | 85 | ### Added 86 | - Add SKIP_STORAGE_PERMISSIONS environment variable to avoid running costly permission changing operations for remote filesystems 87 | 88 | 89 | ## 1.17.108 2025-02-28 90 | 91 | ### Added 92 | - Free Scout 1.8.173 93 | 94 | 95 | ## 1.17.107 2025-02-21 96 | 97 | ### Added 98 | - Free Scout 1.8.172 99 | 100 | 101 | ## 1.17.106 2025-02-14 102 | 103 | ### Added 104 | - Free Scout 1.8.171 105 | 106 | 107 | ## 1.17.105 2025-02-07 108 | 109 | ### Added 110 | - Free Scout 1.8.170 111 | 112 | 113 | ## 1.17.104 2025-01-24 114 | 115 | ### Added 116 | - Free Scout 1.8.168 117 | 118 | 119 | ## 1.17.103 2025-01-23 120 | 121 | ### Added 122 | - Free Scout 1.8.167 123 | 124 | 125 | ## 1.17.102 2025-01-21 126 | 127 | ### Added 128 | - Free Scout 1.8.166 129 | 130 | 131 | ## 1.17.101 2025-01-18 132 | 133 | ### Added 134 | - Docker Freescout 1.8.165 135 | 136 | 137 | ## 1.17.100 2025-01-17 138 | 139 | ### Added 140 | - Free Scout 1.8.164 141 | - Pin to tiredofit/nginx-php-fpm:7.7.17 142 | 143 | 144 | ## 1.17.99 2025-01-17 145 | 146 | ### Added 147 | - Free Scout 1.8.163 148 | 149 | 150 | ## 1.17.98 2025-01-13 151 | 152 | ### Added 153 | - Free Scout 1.8.161 154 | 155 | 156 | ## 1.17.97 2024-12-20 157 | 158 | ### Added 159 | - Free Scout 1.8.160 160 | 161 | 162 | ## 1.17.96 2024-11-29 163 | 164 | ### Added 165 | - Free Scout 1.8.159 166 | 167 | 168 | ## 1.17.95 2024-11-25 169 | 170 | ### Added 171 | - Add APP_SINCE_WITHOUT_QUOTES_ON_FETCHING environment variable 172 | 173 | 174 | ## 1.17.94 2024-11-22 175 | 176 | ### Added 177 | - Free Scout 1.8.158 178 | 179 | ### Changed 180 | - Remove APP_NEW_FETCHING_LIBRARY environment variable 181 | 182 | 183 | ## 1.17.93 2024-11-15 184 | 185 | ### Added 186 | - Free Scout 1.8.157 187 | 188 | 189 | ## 1.17.92 2024-11-08 190 | 191 | ### Changed 192 | - Fix spelling mistake when enabling PHP_POSIX 193 | 194 | 195 | ## 1.17.91 2024-11-06 196 | 197 | ### Added 198 | - Add PHP Posix Module (#198) 199 | 200 | 201 | ## 1.17.90 2024-11-04 202 | 203 | ### Added 204 | - Free Scout 1.8.156 205 | - Pin to tiredofit/nginx-php-fpm:7.7.13 206 | 207 | ### Changed 208 | - Add some PHP Extension checks to avoid any warnings 209 | 210 | 211 | ## 1.17.89 2024-11-01 212 | 213 | ### Added 214 | - FreeScout 1.8.155 215 | 216 | 217 | ## 1.17.88 2024-10-04 218 | 219 | ### Added 220 | - FreeScout 1.8.154 221 | - Pin to tiredofit/nginx-php-fpm:8.3-alpine-7.7.12 222 | 223 | 224 | ## 1.17.87 2024-09-22 225 | 226 | Now using PHP 8.3 as base 227 | 228 | ### Changed 229 | - Fix for previous release with composer depdendencies not proceeding 230 | 231 | 232 | ## 1.17.86 2024-09-22 233 | 234 | ### Added 235 | - Freescout 1.8.153 236 | 237 | 238 | ## 1.17.85 2024-08-30 239 | 240 | ### Changed 241 | - Fix issue with upstream tiredofit/nginx-php-fpm not being able to handle php package upgrades without performing custodial duties first 242 | 243 | 244 | ## 1.17.84 2024-08-28 245 | 246 | ### Added 247 | - FreeScout 1.8.152 248 | 249 | 250 | ## 1.17.83 2024-08-27 251 | 252 | ### Added 253 | - FreeScout 1.8.151 254 | 255 | 256 | ## 1.17.82 2024-08-15 257 | 258 | ### Added 259 | - FreeScout 1.8.150 260 | 261 | 262 | ## 1.17.81 2024-08-14 263 | 264 | ### Added 265 | - FreeScout 1.8.149 266 | 267 | 268 | ## 1.17.80 2024-08-08 269 | 270 | ### Added 271 | - Freescout 1.8.148 272 | 273 | 274 | ## 1.17.79 2024-07-21 275 | 276 | ### Added 277 | - Freescout 1.8.147 278 | 279 | 280 | ## 1.17.78 2024-07-09 281 | 282 | ### Added 283 | - Freescout 1.8.146 284 | 285 | 286 | ## 1.17.77 2024-06-19 287 | 288 | ### Added 289 | - Freescout 1.8.145 290 | 291 | 292 | ## 1.17.76 2024-06-18 293 | 294 | ### Added 295 | - FreeScout 1.8.144 296 | 297 | 298 | ## 1.17.75 2024-06-10 299 | 300 | ### Added 301 | - Freescout 1.8.143 302 | 303 | 304 | ## 1.17.74 2024-06-09 305 | 306 | ### Added 307 | - Freescout 1.8.142 308 | 309 | 310 | ## 1.17.73 2024-05-30 311 | 312 | ### Added 313 | - FreeScout 1.8.141 314 | - Change APP_NAME from Freescout to FreeScout (#181) 315 | 316 | 317 | ## 1.17.72 2024-05-16 318 | 319 | ### Added 320 | - Freescout 1.8.140 321 | 322 | ### Changed 323 | - Force TRUE to APP_NEW_FETCHING_LIBRARY 324 | 325 | 326 | ## 1.17.71 2024-05-14 327 | 328 | ### Added 329 | - Rerelease of Freescout 1.8.139 330 | 331 | 332 | ## 1.17.70 2024-05-10 333 | 334 | ### Added 335 | - Freescout 1.8.139 336 | 337 | 338 | ## 1.17.69 2024-04-26 339 | 340 | ### Added 341 | - Freescout 1.8.138 342 | 343 | 344 | ## 1.17.68 2024-04-22 345 | 346 | ### Added 347 | - Freescout 1.8.137 348 | 349 | 350 | ## 1.17.67 2024-04-19 351 | 352 | ### Added 353 | - Freescout 1.8.136 354 | 355 | 356 | ## 1.17.66 2024-04-12 357 | 358 | ### Added 359 | - Freescout 1.8.135 360 | 361 | 362 | ## 1.17.65 2024-04-12 363 | 364 | ### Added 365 | - Freescout 1.8.134 366 | 367 | 368 | ## 1.17.64 2024-04-12 369 | 370 | ### Added 371 | - Freescout 1.8.133 372 | 373 | 374 | ## 1.17.63 2024-04-09 375 | 376 | ### Added 377 | - Freescout 1.8.132 378 | 379 | 380 | ## 1.17.62 2024-04-04 381 | 382 | ### Added 383 | - Freescout 1.8.131 384 | 385 | 386 | ## 1.17.61 2024-03-29 387 | 388 | ### Added 389 | - Freescout 1.8.130 390 | 391 | 392 | ## 1.17.60 2024-03-22 393 | 394 | ### Added 395 | - Freescout 1.8.128 396 | 397 | 398 | ## 1.17.59 2024-03-21 399 | 400 | ### Added 401 | - Add support for APP_TRUSTED_PROXIES 402 | 403 | 404 | ## 1.17.58 2024-03-18 405 | 406 | ### Added 407 | - Freescout 1.8.127 408 | 409 | 410 | ## 1.17.57 2024-03-10 411 | 412 | ### Added 413 | - Freescout 1.8.126 414 | 415 | 416 | ## 1.17.56 2024-02-23 417 | 418 | ### Added 419 | - FreeScout 1.8.122 420 | 421 | 422 | ## 1.17.55 2024-02-23 423 | 424 | ### Added 425 | - Freescout 1.8.121 426 | 427 | 428 | ## 1.17.54 2024-02-01 429 | 430 | ### Added 431 | - Freescout 1.8.120 432 | 433 | 434 | ## 1.17.53 2024-01-23 435 | 436 | ### Added 437 | - Freescout 1.8.119 438 | 439 | 440 | ## 1.17.52 2024-01-20 441 | 442 | ### Added 443 | - Freescout 1.8.118 444 | 445 | 446 | ## 1.17.51 2024-01-06 447 | 448 | ### Added 449 | - Freescout 1.8.117 450 | 451 | 452 | ## 1.17.50 2023-12-27 453 | 454 | ### Added 455 | - Freescout 1.8.115 456 | 457 | 458 | ## 1.17.49 2023-12-20 459 | 460 | ### Added 461 | - Freescout 1.8.114 462 | 463 | 464 | ## 1.17.48 2023-12-15 465 | 466 | ### Added 467 | - Freescout 1.8.113 468 | 469 | 470 | ## 1.17.47 2023-12-12 471 | 472 | PHP 7.4 and PHP 8.0 variants have been dropped 473 | arm/v7 support has been removed 474 | PHP 8.3 variant is available with this release 475 | 476 | ### Changed 477 | - Fix to 'unknown command' upon startup #152 478 | - Resolve default naming for APP_X_FRAME_OPTIONS 479 | 480 | 481 | ## 1.17.46 2023-12-08 482 | 483 | ### Added 484 | - Freescout 1.8.112 485 | 486 | 487 | ## 1.17.45 2023-12-02 488 | 489 | ### Added 490 | - Freescout 1.8.110 491 | 492 | 493 | ## 1.17.44 2023-11-17 494 | 495 | ### Added 496 | - Freescout 1.8.109 497 | 498 | 499 | ## 1.17.43 2023-11-07 500 | 501 | ### Added 502 | - Freescout 1.8.108 503 | 504 | 505 | ## 1.17.42 2023-11-04 506 | 507 | ### Added 508 | - Freescout 1.8.107 509 | 510 | 511 | ## 1.17.41 2023-10-27 512 | 513 | ### Added 514 | - Freescout 1.8.106 515 | 516 | 517 | ## 1.17.40 2023-10-23 518 | 519 | ### Changed 520 | - Repush of 1.17.39 521 | 522 | 523 | ## 1.17.39 2023-10-23 524 | 525 | ### Added 526 | - Freescout 1.8.105 527 | - Add new APP_X_FRAME_OPTIONS environment variable to support embedding in Iframes 528 | 529 | 530 | ## 1.17.38 2023-10-13 531 | 532 | ### Added 533 | - Freescout 1.8.104 534 | 535 | ### Changed 536 | - Updated nginx config 537 | 538 | 539 | ## 1.17.37 2023-10-09 540 | 541 | ### Changed 542 | - Maintenance release, fix earlier releases 543 | 544 | 545 | ## 1.17.36 2023-10-08 546 | 547 | ### Added 548 | - Freescout 1.8.103 549 | 550 | 551 | ## 1.17.35 2023-10-08 552 | 553 | ### Added 554 | - Freescout 1.8.102 555 | 556 | 557 | ## 1.17.34 2023-10-05 558 | 559 | ### Added 560 | - Freescout 1.8.101 561 | 562 | ### Changed 563 | - Adjust nginx configuration to support secure storage uploads 564 | 565 | 566 | ## 1.17.33 2023-10-03 567 | 568 | ### Added 569 | - Add functionality to copy build-assets/custom-scripts for customization purposes 570 | 571 | 572 | ## 1.17.32 2023-09-23 573 | 574 | ### Added 575 | - Freescout 1.8.100 576 | 577 | 578 | ## 1.17.31 2023-09-21 579 | 580 | ### Added 581 | - Bump version number for dependencies 582 | 583 | 584 | ## 1.17.30 2023-09-20 585 | 586 | ### Changed 587 | - Fix Dockerfile Formatting 588 | - Refine build-assets folder 589 | 590 | 591 | ## 1.17.29 2023-09-15 592 | 593 | ### Added 594 | - Freescout 1.8.99 595 | 596 | 597 | ## 1.17.28 2023-09-14 598 | 599 | ### Added 600 | - Add build-assets folder during Dockerfile build 601 | 602 | 603 | ## 1.17.27 2023-09-13 604 | 605 | ### Changed 606 | - Rebuild with tiredofit/nginx-php-fpm:7.6.15 to fix issue with Signal 15 errors when running long fetch operations. 607 | 608 | 609 | ## 1.17.26 2023-09-11 610 | 611 | ### Added 612 | - Freescout 1.8.98 613 | 614 | 615 | ## 1.17.25 2023-09-09 616 | 617 | ### Added 618 | - Freescout 1.8.97 619 | 620 | 621 | ## 1.17.24 2023-09-01 622 | 623 | ### Added 624 | - Freescout 1.8.95 625 | 626 | 627 | ## 1.17.23 2023-08-26 628 | 629 | ### Added 630 | - Freescout 1.8.94 631 | 632 | 633 | ## 1.17.22 2023-08-21 634 | 635 | ### Added 636 | - Freescout 1.8.93 637 | 638 | 639 | ## 1.17.21 2023-08-18 640 | 641 | ### Added 642 | - Freescout 1.8.91 643 | 644 | 645 | ## 1.17.20 2023-08-14 646 | 647 | ### Added 648 | - Freescout 1.8.90 649 | 650 | 651 | ## 1.17.19 2023-08-05 652 | 653 | ### Added 654 | - Freescout 1.8.89 655 | 656 | 657 | ## 1.17.18 2023-08-05 658 | 659 | ### Added 660 | - Freescout 1.8.88 661 | 662 | 663 | ## 1.17.17 2023-08-04 664 | 665 | ### Added 666 | - Freescout 1.8.87 667 | 668 | 669 | ## 1.17.16 2023-08-03 670 | 671 | ### Changed 672 | - Fix for admin user creation with postgresql 673 | 674 | 675 | ## 1.17.15 2023-07-17 676 | 677 | ### Added 678 | - Freescout 1.8.86 679 | 680 | 681 | ## 1.17.14 2023-07-14 682 | 683 | ### Added 684 | - Freescout 1.8.85 685 | 686 | 687 | ## 1.17.13 2023-07-07 688 | 689 | ### Added 690 | - Freescout 1.8.84 691 | - Add PCNTL PHP extension for long running processes 692 | 693 | 694 | ## 1.17.12 2023-07-01 695 | 696 | ### Added 697 | - Freescout 1.8.83 698 | 699 | 700 | ## 1.17.11 2023-06-30 701 | 702 | ### Added 703 | - Freescout 1.8.82 704 | 705 | 706 | ## 1.17.10 2023-06-23 707 | 708 | ### Added 709 | - Freescout 1.8.81 710 | 711 | 712 | ## 1.17.9 2023-06-05 713 | 714 | ### Added 715 | - Freescout 1.8.80 716 | 717 | 718 | ## 1.17.8 2023-06-03 719 | 720 | ### Added 721 | - Freescout 1.8.79 722 | 723 | 724 | ## 1.17.7 2023-05-31 725 | 726 | ### Added 727 | - Add artisan freescout:build to Dockerfile 728 | - Add artisan freescout:after-app-update execution to each container start 729 | 730 | 731 | ## 1.17.6 2023-05-28 732 | 733 | ### Added 734 | - Freescout 1.8.78 735 | 736 | 737 | ## 1.17.5 2023-05-14 738 | 739 | ### Added 740 | - Freescout 1.8.77 741 | 742 | 743 | ## 1.17.4 2023-05-10 744 | 745 | ### Added 746 | - Freescout 1.8.76 747 | - PHP 8.1 and PHP 8.2 variants use Alpine 3.18 as base 748 | 749 | 750 | ## 1.17.3 2023-05-05 751 | 752 | ### Added 753 | - Freescout 1.8.75 754 | 755 | 756 | ## 1.17.2 2023-05-02 757 | 758 | ### Added 759 | - Freescout 1.8.74 760 | 761 | 762 | ## 1.17.1 2023-04-26 763 | 764 | ### Added 765 | - Support APP_NEW_FETCHING_LIBRARY environment variable 766 | 767 | 768 | ## 1.17.0 2023-04-26 769 | 770 | ### Added 771 | - Introduce support for '_FILE' environment variables 772 | - Enable PHP INTL module 773 | 774 | 775 | ## 1.16.43 2023-04-23 776 | 777 | ### Added 778 | - Freescout 1.8.73 779 | 780 | 781 | ## 1.16.42 2023-04-21 782 | 783 | ### Added 784 | - Freescout 1.8.72 785 | 786 | 787 | ## 1.16.41 2023-04-12 788 | 789 | ### Added 790 | - Freescout 1.8.71 791 | 792 | 793 | ## 1.16.40 2023-04-04 794 | 795 | ### Added 796 | - Freescout 1.8.70 797 | 798 | 799 | ## 1.16.39 2023-03-20 800 | 801 | ### Reverted 802 | - Stop LD_PRELOAD iconv 803 | 804 | 805 | ## 1.16.38 2023-03-18 806 | 807 | ### Added 808 | - Freescout 1.8.69 809 | 810 | 811 | ## 1.16.37 2023-03-17 812 | 813 | ### Added 814 | - Freescout 1.8.68 815 | 816 | 817 | ## 1.16.36 2023-03-16 818 | 819 | ### Added 820 | - Add build_assets folder for injecting scripts and code into the build process 821 | 822 | 823 | ## 1.16.35 2023-03-15 824 | 825 | ### Changed 826 | - Dependency updates to ensure correct PHP Base images are being used 827 | 828 | 829 | ## 1.16.34 2023-03-09 830 | 831 | ### Added 832 | - Freescout 1.8.67 833 | 834 | 835 | ## 1.16.33 2023-03-03 836 | 837 | ### Added 838 | - Freescout 1.8.66 839 | 840 | 841 | ## 1.16.32 2023-02-27 842 | 843 | ### Added 844 | - Freescout 1.8.65 845 | 846 | 847 | ## 1.16.31 2023-02-26 848 | 849 | ### Added 850 | - Freescout 1.8.63 851 | 852 | 853 | ## 1.16.30 2023-02-26 854 | 855 | ### Added 856 | - Freescout 1.8.62 857 | 858 | 859 | ## 1.16.29 2023-02-20 860 | 861 | ### Added 862 | - Freescout 1.8.61 863 | 864 | 865 | ## 1.16.28 2023-02-14 866 | 867 | ### Added 868 | - Freescout 1.8.60 869 | 870 | 871 | ## 1.16.27 2023-02-09 872 | 873 | ### Added 874 | - Freescout 1.8.58 875 | 876 | 877 | ## 1.16.26 2023-02-03 878 | 879 | ### Added 880 | - Freescout 1.8.57 881 | 882 | 883 | ## 1.16.25 2023-02-01 884 | 885 | ### Added 886 | - Freescout 1.8.56 887 | 888 | 889 | ## 1.16.24 2023-01-30 890 | 891 | ### Added 892 | - Freescout 1.8.55 893 | 894 | 895 | ## 1.16.23 2023-01-26 896 | 897 | ### Added 898 | - Freescout 1.8.54 899 | 900 | 901 | ## 1.16.22 2023-01-25 902 | 903 | ### Added 904 | - Freescout 1.8.53 905 | 906 | 907 | ## 1.16.21 2023-01-19 908 | 909 | It is recomended all users upgrade immediately to this release to fix long standing bugs and stability issues 910 | 911 | ### Added 912 | - Freescout 1.8.52 913 | 914 | 915 | ## 1.16.20 2023-01-18 916 | 917 | It is recomended all users upgrade immediately to this release to fix long standing bugs and stability issues 918 | 919 | ### Added 920 | - Freescout 1.8.51 921 | 922 | 923 | ## 1.16.19 2023-01-15 924 | 925 | ### Added 926 | - Frescout 1.8.50 927 | 928 | 929 | ## 1.16.18 2023-01-11 930 | 931 | ### Added 932 | - Freescout 1.8.49 933 | 934 | 935 | ## 1.16.17 2023-01-10 936 | 937 | ### Added 938 | - Freescout 1.8.48 939 | 940 | 941 | ## 1.16.16 2023-01-08 942 | 943 | ### Added 944 | - Freescout 1.8.47 945 | 946 | 947 | ## 1.16.15 2023-01-03 948 | 949 | ### Added 950 | - Freescout 1.8.46 951 | 952 | 953 | ## 1.16.14 2022-12-27 954 | 955 | ### Added 956 | - Add DB_PGSQL_SSLMODE environment variable 957 | 958 | 959 | ## 1.16.13 2022-12-26 960 | 961 | ### Added 962 | - Freescout 1.8.45 963 | 964 | 965 | ## 1.16.12 2022-12-21 966 | 967 | ### Added 968 | - Freescout 1.8.44 969 | 970 | 971 | ## 1.16.11 2022-12-20 972 | 973 | ### Added 974 | - Freescout 1.8.43 975 | 976 | 977 | ## 1.16.10 2022-12-19 978 | 979 | ### Added 980 | - Freescout 1.8.42 981 | 982 | 983 | ## 1.16.9 2022-12-18 984 | 985 | ### Added 986 | - Freescout 1.8.41 987 | 988 | 989 | ## 1.16.8 2022-12-15 990 | 991 | ### Added 992 | - Freescout 1.8.40 993 | 994 | 995 | ## 1.16.7 2022-12-13 996 | 997 | ### Changed 998 | - Revert to PHP 8.1 999 | 1000 | 1001 | ## 1.16.6 2022-12-13 1002 | 1003 | ### Added 1004 | - Freescout 1.8.39 1005 | 1006 | ### Changed 1007 | - Start building PHP 8.2 variants - Switch to 8.2 as default 1008 | 1009 | 1010 | ## 1.16.5 2022-12-11 1011 | 1012 | ### Added 1013 | - Freescout 1.8.38 1014 | 1015 | 1016 | ## 1.16.4 2022-12-07 1017 | 1018 | ### Added 1019 | - Freescout 1.8.37 1020 | 1021 | 1022 | ## 1.16.3 2022-12-01 1023 | 1024 | ### Changed 1025 | - Rework Dockerfile 1026 | 1027 | 1028 | ## 1.16.2 2022-11-28 1029 | 1030 | ### Changed 1031 | - Fix for 1.16.0 with Default DB Port 1032 | 1033 | 1034 | ## 1.16.1 2022-11-28 1035 | 1036 | ### Changed 1037 | - Rework Dockerfile to take advantage of some build arguments 1038 | - Rework Github Actions for better building 1039 | 1040 | 1041 | ## 1.16.0 2022-11-28 1042 | 1043 | ### Added 1044 | - Add Postgresql support courtesy of rustymunkey@github 1045 | 1046 | 1047 | ## 1.15.72 2022-11-27 1048 | 1049 | ### Added 1050 | - Freescout 1.8.36 1051 | 1052 | 1053 | ## 1.15.71 2022-11-16 1054 | 1055 | ### Added 1056 | - Freescout 1.8.34 1057 | 1058 | 1059 | ## 1.15.70 2022-11-09 1060 | 1061 | ### Added 1062 | - Freescout 1.8.32 1063 | 1064 | 1065 | ## 1.15.69 2022-10-25 1066 | 1067 | ### Added 1068 | - Freescout 1.8.31 1069 | 1070 | 1071 | ## 1.15.68 2022-10-13 1072 | 1073 | ### Added 1074 | - Freescout 1.8.30 1075 | 1076 | 1077 | ## 1.15.67 2022-10-05 1078 | 1079 | ### Changed 1080 | - Fix for APP_PROXY command not updating correctly after container restart 1081 | 1082 | 1083 | ## 1.15.66 2022-10-05 1084 | 1085 | ### Added 1086 | - Switch :latest to PHP 8.1 1087 | 1088 | ### Changed 1089 | - Fix Build workflows to include CHANGELOGs properly. 1090 | 1091 | 1092 | ## 1.15.65 2022-10-05 1093 | 1094 | ### Changed 1095 | - Migrate legacy nginx configuration 1096 | 1097 | 1098 | ## 1.15.64 2022-10-04 1099 | 1100 | ### Changed 1101 | - Change the way repos are cloned in Dockerfile 1102 | 1103 | 1104 | ## 1.15.63 2022-09-29 1105 | 1106 | ### Added 1107 | - Freescout 1.8.29 1108 | 1109 | 1110 | ## 1.15.62 2022-09-27 1111 | 1112 | ### Added 1113 | - Add `APP_PROXY` support as introduced in Freescout 1.8.25 1114 | - Freescout 1.8.28 1115 | 1116 | 1117 | ## 1.15.61 2022-09-22 1118 | 1119 | ### Added 1120 | - Freescout 1.8.27 1121 | 1122 | 1123 | ## 1.15.60 2022-09-21 1124 | 1125 | ### Added 1126 | - Freescout 1.8.26 1127 | 1128 | 1129 | ## 1.15.59 2022-09-17 1130 | 1131 | ### Added 1132 | - Freescout 1.8.25 1133 | 1134 | 1135 | ## 1.15.58 2022-09-14 1136 | 1137 | ### Added 1138 | - Freescout 1.8.24 1139 | 1140 | 1141 | ## 1.15.57 2022-09-11 1142 | 1143 | ### Added 1144 | - Freescout 1.8.23 1145 | 1146 | 1147 | ## 1.15.56 2022-09-03 1148 | 1149 | ### Added 1150 | - Freescout 1.8.22 1151 | 1152 | 1153 | ## 1.15.55 2022-08-06 1154 | 1155 | ### Added 1156 | - Start using custom_scripts and custom_files functions from base 1157 | 1158 | 1159 | ## 1.15.54 2022-08-01 1160 | 1161 | ### Added 1162 | - Freescout 1.8.21 1163 | 1164 | 1165 | ## 1.15.53 2022-07-06 1166 | 1167 | ### Added 1168 | - Freescout 1.8.20 1169 | 1170 | 1171 | ## 1.15.52 2022-06-23 1172 | 1173 | ### Added 1174 | - Support tiredofit/nginx:6.0.0 and tiredofit/nginx-php-fpm:7.0.0 changes 1175 | 1176 | 1177 | ## 1.15.51 2022-06-20 1178 | 1179 | ### Added 1180 | - Freecsout 1.8.19 1181 | 1182 | 1183 | ## 1.15.50 2022-06-15 1184 | 1185 | ### Added 1186 | - Freescout 1.8.18 1187 | 1188 | 1189 | ## 1.15.49 2022-06-07 1190 | 1191 | ### Added 1192 | - Freescout 1.8.17 1193 | 1194 | 1195 | ## 1.15.48 2022-05-24 1196 | 1197 | ### Added 1198 | - Freescout 1.8.16 1199 | 1200 | 1201 | ## 1.15.47 2022-05-16 1202 | 1203 | ### Added 1204 | - Freescout 1.8.15 1205 | 1206 | 1207 | ## 1.15.46 2022-05-15 1208 | 1209 | ### Changed 1210 | - Update IMAGE_NAME on startup 1211 | 1212 | 1213 | ## 1.15.45 2022-05-13 1214 | 1215 | ### Added 1216 | - Freescout 1.8.14 1217 | 1218 | 1219 | ## 1.15.44 2022-05-10 1220 | 1221 | ### Changed 1222 | - CI version bump 1223 | 1224 | 1225 | ## 1.15.43 2022-05-01 1226 | 1227 | ### Added 1228 | - Freescout 1.8.13 1229 | 1230 | 1231 | ## 1.15.42 2022-04-14 1232 | 1233 | ### Added 1234 | - Freescout 1.8.12 1235 | 1236 | 1237 | ## 1.15.41 2022-04-06 1238 | 1239 | ### Added 1240 | - Freescout 1.8.11 1241 | 1242 | 1243 | ## 1.15.40 2022-03-29 1244 | 1245 | ### Added 1246 | - Freescout 1.8.10 1247 | 1248 | 1249 | ## 1.15.39 2022-03-14 1250 | 1251 | ### Added 1252 | - Freescout 1.8.9 1253 | 1254 | 1255 | ## 1.15.38 2022-03-11 1256 | 1257 | ### Changed 1258 | - Fix invalid EOF introduced from 1.15.37 1259 | 1260 | 1261 | ## 1.15.37 2022-03-11 1262 | 1263 | ### Changed 1264 | - Update to support new base image versions 1265 | - Allow situations for "warm" reboots better 1266 | 1267 | 1268 | ## 1.15.36 2022-03-04 1269 | 1270 | ### Added 1271 | - Freescout 1.8.8 1272 | 1273 | 1274 | ## 1.15.35 2022-02-22 1275 | 1276 | ### Added 1277 | - Freescout 1.8.7 1278 | 1279 | 1280 | ## 1.15.34 2022-02-17 1281 | 1282 | ### Added 1283 | - Freescout 1.8.6 1284 | 1285 | 1286 | ## 1.15.33 2022-02-15 1287 | 1288 | ### Added 1289 | - Freescout 1.8.5 1290 | 1291 | 1292 | ## 1.15.32 2022-02-07 1293 | 1294 | ### Added 1295 | - Freescout 1.8.4 1296 | 1297 | 1298 | ## 1.15.31 2022-02-05 1299 | 1300 | ### Added 1301 | - Freescout 1.8.3 1302 | 1303 | 1304 | ## 1.15.30 2022-02-04 1305 | 1306 | ### Added 1307 | - Freescout 1.8.2 1308 | 1309 | 1310 | ## 1.15.29 2022-01-24 1311 | 1312 | ### Added 1313 | - Freescout 1.7.30 1314 | 1315 | 1316 | ## 1.15.28 2022-01-23 1317 | 1318 | ### Added 1319 | - Freescout 1.7.29 1320 | 1321 | 1322 | ## 1.15.27 2022-01-22 1323 | 1324 | ### Added 1325 | - Freescout 1.7.28 1326 | 1327 | 1328 | ## 1.15.26 2022-01-07 1329 | 1330 | ### Added 1331 | - Rebuild image to support base level updates, sepcifically to allow MySQL 5.7 to operate 1332 | 1333 | 1334 | ## 1.15.25 2022-01-05 1335 | 1336 | ### Added 1337 | - Freescout 1.7.27 1338 | 1339 | 1340 | ## 1.15.24 2021-12-31 1341 | 1342 | ### Added 1343 | - Freescout 1.7.26 1344 | 1345 | 1346 | ## 1.15.23 2021-12-26 1347 | 1348 | ### Added 1349 | - Freescout 1.7.25 1350 | 1351 | 1352 | ## 1.15.22 2021-12-13 1353 | 1354 | ### Added 1355 | - Freescout 1.7.24 1356 | 1357 | 1358 | ## 1.15.21 2021-12-03 1359 | 1360 | ### Added 1361 | - Freescout 1.7.23 1362 | 1363 | 1364 | ## 1.15.20 2021-11-30 1365 | 1366 | ### Added 1367 | - Freescout 1.7.22 1368 | 1369 | ### Changed 1370 | - Fix to artisan alias command 1371 | 1372 | 1373 | ## 1.15.19 2021-11-15 1374 | 1375 | ### Added 1376 | - Freescout 1.7.21 1377 | 1378 | 1379 | ## 1.15.18 2021-10-21 1380 | 1381 | ### Added 1382 | - Freescout 1.7.20 1383 | 1384 | 1385 | ## 1.15.17 2021-10-20 1386 | 1387 | ### Added 1388 | - Freescout 1.7.19 1389 | 1390 | 1391 | ## 1.15.16 2021-10-14 1392 | 1393 | ### Added 1394 | - Freescout 1.7.18 1395 | 1396 | 1397 | ## 1.15.15 2021-09-23 1398 | 1399 | ### Added 1400 | - Freescout 1.7.17 1401 | 1402 | 1403 | ## 1.15.14 2021-09-19 1404 | 1405 | ### Changed 1406 | - Update artisan to remember previous directory 1407 | 1408 | 1409 | ## 1.15.13 2021-08-25 1410 | 1411 | ### Added 1412 | - Freescout 1.7.16 1413 | 1414 | 1415 | ## 1.15.12 2021-08-11 1416 | 1417 | ### Added 1418 | - Freescout 1.7.15 1419 | 1420 | 1421 | ## 1.15.11 2021-08-03 1422 | 1423 | ### Added 1424 | - Freescout 1.7.14 1425 | 1426 | 1427 | ## 1.15.10 2021-07-24 1428 | 1429 | ### Changed 1430 | - Restore missing "defaults" file which was causing installations not explictly setting DB_PORT to have databases wiped out 1431 | - Quiet down installation routines that were showing database passwords unneccessarily 1432 | 1433 | 1434 | ## 1.15.9 2021-07-22 1435 | 1436 | ### Changed 1437 | - Fix in 1.15.8 that wiped existing installations databases (!) 1438 | 1439 | 1440 | ## 1.15.8 2021-07-20 1441 | 1442 | ### Changed 1443 | - Change the way the scheduler gets added into system timers 1444 | - Correctly set Timezone when running scheduler 1445 | 1446 | 1447 | ## 1.15.7 2021-07-19 1448 | 1449 | ### Added 1450 | - Freescout 1.7.13 1451 | 1452 | 1453 | ## 1.15.6 2021-07-11 1454 | 1455 | ### Added 1456 | - Freescout 1.7.12 1457 | 1458 | 1459 | ## 1.15.5 2021-06-23 1460 | 1461 | ### Added 1462 | - Freescout 1.7.11 1463 | 1464 | 1465 | ## 1.15.4 2021-06-16 1466 | 1467 | ### Added 1468 | - Freescout 1.7.10 1469 | 1470 | 1471 | ## 1.15.3 2021-05-21 1472 | 1473 | ### Added 1474 | - Freescout 1.7.9 1475 | 1476 | 1477 | ## 1.15.2 2021-05-19 1478 | 1479 | ### Added 1480 | - Freescout 1.7.7 1481 | 1482 | 1483 | ## 1.15.1 2021-05-14 1484 | 1485 | ### Added 1486 | - Freescout 1.7.6 1487 | 1488 | 1489 | ## 1.15.0 2021-05-11 1490 | 1491 | ### Added 1492 | - Stop requiring ADMIN_EMAIL and ADMIN_PASS to be set after installation 1493 | - Allow SETUP_TYPE=MANAL to bypass any in place variable/setup checks 1494 | 1495 | 1496 | ## 1.14.4 2021-05-11 1497 | 1498 | ### Added 1499 | - Freescout 1.7.5 1500 | 1501 | 1502 | ## 1.14.3 2021-04-23 1503 | 1504 | ### Added 1505 | - Freescout 1.7.4 1506 | 1507 | 1508 | ## 1.14.2 2021-04-22 1509 | 1510 | ### Added 1511 | - Freescout 1.7.3 1512 | - Support new tiredofit/nginx-php-fpm base 1513 | 1514 | 1515 | ## 1.14.1 2021-04-20 1516 | 1517 | ### Changed 1518 | - Preload Iconv for PHP8 not PHP7 1519 | 1520 | 1521 | ## 1.14.0 2021-04-15 1522 | 1523 | ### Added 1524 | - Freescout 1.7.2 1525 | - PHP 8.x 1526 | 1527 | 1528 | ## 1.13.3 2021-03-17 1529 | 1530 | ### Added 1531 | - Freescout 1.6.20 1532 | 1533 | 1534 | ## 1.13.2 2021-03-14 1535 | 1536 | ### Added 1537 | - Freescout 1.6.19 1538 | 1539 | 1540 | ## 1.13.1 2021-03-09 1541 | 1542 | ### Added 1543 | - Enable PHP gnuPG extensiont to support new encrypted mail module 1544 | 1545 | 1546 | ## 1.13.0 2021-03-08 1547 | 1548 | ### Added 1549 | - DB Port checking for new installs to avoid overwriting the databse 1550 | 1551 | 1552 | ## 1.12.11 2021-03-07 1553 | 1554 | ### Added 1555 | - Freescout 1.6.18 1556 | 1557 | 1558 | ## 1.12.10 2021-03-03 1559 | 1560 | ### Added 1561 | - Freescout 1.6.17 1562 | 1563 | 1564 | ## 1.12.9 2021-02-25 1565 | 1566 | ### Added 1567 | - Switch to PHP 7.4 Base 1568 | 1569 | 1570 | ## 1.12.8 2021-02-25 1571 | 1572 | ### Added 1573 | - Freescout 1.6.16 1574 | 1575 | 1576 | ## 1.12.7 2021-02-13 1577 | 1578 | ### Fixed 1579 | - Fix for 1.12.6 1580 | 1581 | ## 1.12.6 2021-02-13 1582 | 1583 | ### Fixed 1584 | - Fix for Laravel/Freescout log files not saving properly 1585 | 1586 | ## 1.12.5 2021-02-13 1587 | 1588 | ### Added 1589 | - Freescout 1.6.15 1590 | 1591 | 1592 | ## 1.12.4 2021-02-10 1593 | 1594 | ### Added 1595 | - Freescout 1.6.14 1596 | 1597 | 1598 | ## 1.12.3 2021-01-16 1599 | 1600 | ### Added 1601 | - Freescout 1.6.13 1602 | 1603 | 1604 | ## 1.12.2 2021-01-08 1605 | 1606 | ### Changed 1607 | - Revert to PHP 7.3 due to incompatibilities with the LDAP Module 1608 | 1609 | 1610 | ## 1.12.1 2021-01-04 1611 | 1612 | ### Reverted 1613 | - Revert Change to Scheduler back to cron 1614 | 1615 | 1616 | ## 1.12.0 2020-12-31 1617 | 1618 | ### Added 1619 | - Freescout 1.6.12 1620 | 1621 | ### Changed 1622 | - Change the way that artisan schedule command works. Instead of running through cron, use a seperate S6 process to control. 1623 | 1624 | 1625 | ## 1.11.2 2020-12-24 1626 | 1627 | ### Added 1628 | - Freescoutt 1.6.11 1629 | 1630 | 1631 | ## 1.11.1 2020-12-17 1632 | 1633 | ### Added 1634 | - Freescout 1.6.10 1635 | 1636 | 1637 | ## 1.11.0 2020-12-12 1638 | 1639 | ### Added 1640 | - Switch to PHP 7.4 1641 | 1642 | ## 1.10.15 2020-12-03 1643 | 1644 | ### Added 1645 | - Freescout 1.6.9 1646 | 1647 | 1648 | ## 1.10.14 2020-11-26 1649 | 1650 | ### Added 1651 | - Freescout 1.6.8 1652 | 1653 | 1654 | ## 1.10.13 2020-11-07 1655 | 1656 | ### Added 1657 | - Freescout 1.6.7 1658 | 1659 | 1660 | ## 1.10.12 2020-10-31 1661 | 1662 | ### Added 1663 | - Freescout 1.6.6 1664 | 1665 | 1666 | ## 1.10.11 2020-10-28 1667 | 1668 | ### Added 1669 | - Freescout 1.6.5 1670 | 1671 | 1672 | ## 1.10.10 2020-10-27 1673 | 1674 | ### Added 1675 | - Freescout 1.6.4 1676 | 1677 | 1678 | ## 1.10.9 2020-10-26 1679 | 1680 | ### Added 1681 | - Freescout 1.6.3 1682 | 1683 | 1684 | ## 1.10.8 2020-10-06 1685 | 1686 | ### Added 1687 | - Freescout 1.6.2 1688 | 1689 | 1690 | ## 1.10.7 2020-10-02 1691 | 1692 | ### Added 1693 | - Freescout 1.6.1 1694 | 1695 | 1696 | ## 1.10.6 2020-09-22 1697 | 1698 | ### Added 1699 | - Freescout 1.6.0 1700 | 1701 | ### Changed 1702 | - Reduced image size by deleting install cache 1703 | 1704 | 1705 | ## 1.10.5 2020-09-16 1706 | 1707 | ### Added 1708 | - Freescout 1.5.15 (support new API and Webhook Module) 1709 | 1710 | 1711 | ## 1.10.4 2020-09-12 1712 | 1713 | ### Added 1714 | - Add additional cache clear statement 1715 | 1716 | 1717 | ## 1.10.3 2020-09-11 1718 | 1719 | ### Added 1720 | - Freescout 1.5.14 1721 | 1722 | 1723 | ## 1.10.2 2020-08-24 1724 | 1725 | ### Added 1726 | - Freescout 1.5.12 1727 | 1728 | 1729 | ## 1.10.1 2020-08-23 1730 | 1731 | ### Reverted 1732 | - Removed Timezone variable - It was causing problems resetting 1733 | 1734 | 1735 | ## 1.10.0 2020-08-23 1736 | 1737 | ### Added 1738 | - Added `SETUP_TYPE` environment variable to skip editting .env/config after first boot 1739 | - Added additional configuration cache clear upon startup 1740 | 1741 | ### Changed 1742 | - Changes to the way configuration is written as per shellcheck 1743 | 1744 | 1745 | ## 1.9.0 2020-08-22 1746 | 1747 | ### Added 1748 | - Change the way we pull Freescout - Now pull from Git and allow checking out different branches and repository URLs 1749 | 1750 | 1751 | ## 1.8.5 2020-07-26 1752 | 1753 | ### Added 1754 | - Freescout 1.5.11 1755 | 1756 | 1757 | ## 1.8.4 2020-07-23 1758 | 1759 | ### Added 1760 | - Freescout 1.5.10 1761 | 1762 | 1763 | ## 1.8.3 2020-07-17 1764 | 1765 | ### Added 1766 | - Freescout 1.5.9 1767 | 1768 | 1769 | ## 1.8.2 2020-06-28 1770 | 1771 | ### Added 1772 | - Freescout 1.5.8 1773 | 1774 | ### Changed 1775 | - Cleanup code to fix shellcheck warnings 1776 | 1777 | 1778 | ## 1.8.1 2020-06-20 1779 | 1780 | ### Changed 1781 | - Fix for Administrative user not being created on first boot 1782 | 1783 | 1784 | ## 1.8.0 2020-06-08 1785 | 1786 | ### Added 1787 | - Changes to support tiredofit/alpine 5.0.0 base image 1788 | 1789 | 1790 | ## 1.7.12 2020-05-28 1791 | 1792 | ### Added 1793 | - Freescout 1.5.7 1794 | 1795 | 1796 | ## 1.7.11 2020-05-16 1797 | 1798 | ### Added 1799 | - Freescout 1.5.6 1800 | 1801 | 1802 | ## 1.7.10 2020-04-26 1803 | 1804 | ### Added 1805 | - Freescout 1.5.4 1806 | 1807 | 1808 | ## 1.7.9 2020-03-29 1809 | 1810 | ### Added 1811 | - Freescout 1.5.3 1812 | 1813 | 1814 | ## 1.7.8 2020-03-21 1815 | 1816 | ### Changed 1817 | - Cleanup configuration with the mess caused by 1.7.0 and up 1818 | 1819 | 1820 | ## 1.7.7 2020-03-21 1821 | 1822 | ### Changed 1823 | - Fix Secure Downloads 1824 | 1825 | 1826 | ## 1.7.6 2020-03-21 1827 | 1828 | ### Changed 1829 | - Fix Auto Upgrade routine 1830 | 1831 | 1832 | ## 1.7.5 2020-03-19 1833 | 1834 | ### Changed 1835 | - Bugfix for Storage Attachments 1836 | 1837 | 1838 | ## 1.7.4 2020-03-16 1839 | 1840 | ### Changed 1841 | - Fix logfile directory permissions 1842 | 1843 | 1844 | ## 1.7.3 2020-03-13 1845 | 1846 | ### Added 1847 | - Freescout 1.5.2 1848 | 1849 | 1850 | ## 1.7.2 2020-03-12 1851 | 1852 | ### Added 1853 | - Freescout 1.5.1 1854 | 1855 | ### Changed 1856 | - Switch from using expect to create new Admin user to new command line function introduced in 1.5.1 1857 | 1858 | 1859 | ## 1.7.1 2020-03-10 1860 | 1861 | ### Changed 1862 | - Fix to nginx configuration as per https://github.com/freescout-helpdesk/freescout/issues/522#issuecomment-596923374 1863 | 1864 | 1865 | ## 1.7.0 2020-03-09 1866 | 1867 | ### Added 1868 | - Update to Freescout 1.5.0 1869 | - Add new routines to migrate old public attachments to private attachments 1870 | - Serve attachments via Nginx instead of PHP 1871 | 1872 | 1873 | ## 1.6.13 2020-03-05 1874 | 1875 | ### Added 1876 | - Freescout 1.4.12 1877 | 1878 | 1879 | ## 1.6.12 2020-02-18 1880 | 1881 | ### Added 1882 | - Freescout 1.4.11 1883 | 1884 | 1885 | ## 1.6.11 2020-02-16 1886 | 1887 | ### Added 1888 | - Freescout 1.4.10 1889 | 1890 | 1891 | ## 1.6.10 2020-02-09 1892 | 1893 | ### Added 1894 | - Freescout 1.4.9 1895 | 1896 | 1897 | ## 1.6.9 2020-02-02 1898 | 1899 | ### Added 1900 | - Freescout 1.4.8 1901 | 1902 | 1903 | ## 1.6.8 2020-01-29 1904 | 1905 | ### Added 1906 | - Freescout 1.4.7 1907 | 1908 | 1909 | ## 1.6.7 2020-01-25 1910 | 1911 | ### Added 1912 | - Freescout 1.4.6 1913 | 1914 | 1915 | ## 1.6.6 2020-01-24 1916 | 1917 | ### Added 1918 | - Freescout 1.4.4 1919 | 1920 | 1921 | ## 1.6.5 2020-01-19 1922 | 1923 | ### Added 1924 | - Freescout 1.4.3 1925 | 1926 | 1927 | ## 1.6.4 2020-01-17 1928 | 1929 | ### Added 1930 | - Freescout 1.4.2 1931 | 1932 | 1933 | ## 1.6.3 2020-01-14 1934 | 1935 | ### Added 1936 | - Freescout 1.4.1 1937 | 1938 | 1939 | ## 1.6.2 2020-01-07 1940 | 1941 | ### Added 1942 | - Freescout 1.4.0 1943 | 1944 | ## 1.6.1 2020-01-02 1945 | 1946 | ### Changed 1947 | - Additional changes to support new tiredofit/alpine base image 1948 | 1949 | 1950 | ## 1.6.0 2019-12-29 1951 | 1952 | ### Added 1953 | - Update to support new tiredofit/alpine base image 1954 | 1955 | 1956 | ## 1.5.8 2019-12-28 1957 | 1958 | ### Added 1959 | - FreeScout 1.3.19 1960 | 1961 | 1962 | ## 1.5.7 2019-12-22 1963 | 1964 | ### Added 1965 | - Freescout 1.3.18 1966 | 1967 | 1968 | ## 1.5.6 2019-12-21 1969 | 1970 | ### Added 1971 | - Freescout 1.3.17 1972 | 1973 | 1974 | ## 1.5.5 2019-12-18 1975 | 1976 | ### Added 1977 | - Freescout 1.3.16 1978 | 1979 | 1980 | ## 1.5.4 2019-12-18 1981 | 1982 | ### Changed 1983 | - Dynamically set Nginx User and Group permissions across project 1984 | 1985 | 1986 | ## 1.5.3 2019-12-17 1987 | 1988 | ### Added 1989 | - Freescout 1.3.15 1990 | 1991 | 1992 | ## 1.5.2 2019-12-17 1993 | 1994 | ### Changed 1995 | - Cleanup Dockerfile 1996 | 1997 | 1998 | ## 1.5.1 2019-12-15 1999 | 2000 | ### Changed 2001 | - Bugfixes to initialization script 2002 | 2003 | 2004 | ## 1.5.0 2019-12-13 2005 | 2006 | ### Added 2007 | - Add `APPLICATION_NAME` to support changing name from Freescout to something custom 2008 | 2009 | 2010 | ## 1.4.4 2019-12-12 2011 | 2012 | ### Changed 2013 | - Final tweak to running database migrations on startup 2014 | 2015 | 2016 | ## 1.4.3 2019-12-12 2017 | 2018 | ### Changed 2019 | - Change in the way that DB Migrations are done. Do them every time to avoid any uncaught module installations 2020 | 2021 | 2022 | ## 1.4.2 2019-12-11 2023 | 2024 | ### Added 2025 | - Add alias for running artisan - Type `artisan ` inside of container to run commands as webserver user 2026 | 2027 | 2028 | ## 1.4.1 2019-12-11 2029 | 2030 | ### Changed 2031 | - Quiet down Module installation output 2032 | 2033 | 2034 | ## 1.4.0 2019-12-11 2035 | 2036 | ### Added 2037 | - Add execution of custom scripts upon container startup (map /assets/custom-scripts) 2038 | 2039 | ### Changed 2040 | - Fixed error where Module installation would hang 2041 | 2042 | 2043 | ## 1.3.0 2019-12-10 2044 | 2045 | ### Added 2046 | - Refinements to Persistent Storage specifically Modules and Configuration Files 2047 | 2048 | ### Changed 2049 | - Considerable cleanup related to storage 2050 | - Automatically install Modules and clear cache routines 2051 | - Much easier to survive container restarts 2052 | - Fix related to auto upgrade routines 2053 | 2054 | 2055 | ## 1.2.0 2019-12-09 2056 | 2057 | ### Added 2058 | - Refactor to support new tiredofit/nginx-php-fpm base image 2059 | - Freescout 1.3.14 2060 | 2061 | 2062 | ## 1.1.2 2019-11-25 2063 | 2064 | ### Added 2065 | - Freescout 1.3.12 2066 | 2067 | 2068 | ## 1.1.1 2019-11-20 2069 | 2070 | ### Added 2071 | - Make modules persistent via new functionality introduced in 1.1.0 2072 | 2073 | 2074 | ## 1.1.0 2019-11-20 2075 | 2076 | ### Added 2077 | - Added persistent storage for sessions, cache, and vars - Mount /data as a volume to benefit 2078 | 2079 | ### Changed 2080 | - Updated docker-compose examples 2081 | 2082 | 2083 | ## 1.0.4 2019-11-17 2084 | 2085 | ### Changed 2086 | - Update to Freescout 1.3.11 2087 | 2088 | 2089 | ## 1.0.3 2019-11-11 2090 | 2091 | * Freescout 1.3.10 2092 | 2093 | ## 1.0.2 2019-10-23 2094 | 2095 | * Freescout 1.3.8 2096 | 2097 | ## 1.0.1 2019-09-10 2098 | 2099 | * Freescout 1.3.6 2100 | 2101 | ## 1.0 2019-08-08 w/ help from 2102 | 2103 | * Freescout 1.3.5 2104 | * Ability to Self Update 2105 | * Auto upgrade from Image version to image version 2106 | * Ability to add custom modules 2107 | * Ability to have access to custom source (this should allow Auto Updating to work without having to always update the image) 2108 | * Moved back to tiredofit/nginx-php-fpm base image to make development and upkeep easier 2109 | * PHP 7.3 2110 | 2111 | ## 0.11 2019-07-31 2112 | 2113 | * Freescout 1.3.3 2114 | 2115 | ## 0.10 2019-07-07 2116 | 2117 | * Freescout 1.2.4 2118 | 2119 | ## 0.9 2019-04-27 2120 | 2121 | * Freescout 1.1.7 2122 | 2123 | ## 0.8 2019-04-08 2124 | 2125 | * Switch to Alpine Edge 2126 | * Use gnuiconv from community instead of testing 2127 | 2128 | ## 0.7 2019-01-03 2129 | 2130 | * Freescout 1.1.6 2131 | 2132 | ## 0.6 2018-12-21 2133 | 2134 | * Freescout 1.1.3 2135 | 2136 | ## 0.5 2018-12-10 2137 | 2138 | * Freescout 1.1.1 2139 | 2140 | ## 0.4 2018-11-27 2141 | 2142 | * Freescout 1.0.7 2143 | 2144 | ## 0.3 2018-11-06 2145 | 2146 | * Rebuild Image from Alpine 3.8 Base omitting previous usage of tiredofit/nginx-php-fpm 2147 | * Fix for Iconv PHP Imap Errors (really) 2148 | * Alter location for freescout logs 2149 | * Logrotate for Freescout Fetch Logs 2150 | 2151 | ## 0.2 2018-11-04 2152 | 2153 | * Add gnu-libiconv to resolve IMAP errors 2154 | 2155 | ## 0.1 2018-11-03 2156 | 2157 | * Initial Release 2158 | * Alpine 3.8 2159 | * PHP 7.2 2160 | * Freescout 1.0.0 2161 | 2162 | 2163 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | ARG PHP_VERSION=8.3 2 | ARG DISTRO="alpine" 3 | 4 | FROM docker.io/tiredofit/nginx-php-fpm:${PHP_VERSION}-${DISTRO}-7.7.19 5 | LABEL maintainer="Dave Conroy (github.com/tiredofit)" 6 | 7 | ARG FREESCOUT_VERSION 8 | 9 | ENV FREESCOUT_VERSION=${FREESCOUT_VERSION:-"1.8.182"} \ 10 | FREESCOUT_REPO_URL=https://github.com/freescout-helpdesk/freescout \ 11 | NGINX_WEBROOT=/www/html \ 12 | NGINX_SITE_ENABLED=freescout \ 13 | PHP_CREATE_SAMPLE_PHP=FALSE \ 14 | PHP_ENABLE_CURL=TRUE \ 15 | PHP_ENABLE_FILEINFO=TRUE \ 16 | PHP_ENABLE_GNUPG=TRUE \ 17 | PHP_ENABLE_ICONV=TRUE \ 18 | PHP_ENABLE_IGBINARY=TRUE \ 19 | PHP_ENABLE_IMAP=TRUE \ 20 | PHP_ENABLE_INTL=TRUE \ 21 | PHP_ENABLE_LDAP=TRUE \ 22 | PHP_ENABLE_OPENSSL=TRUE \ 23 | PHP_ENABLE_PCNTL=TRUE \ 24 | PHP_ENABLE_PDO_PGSQL=TRUE \ 25 | PHP_ENABLE_POSIX=TRUE \ 26 | PHP_ENABLE_SIMPLEXML=TRUE \ 27 | PHP_ENABLE_TOKENIZER=TRUE \ 28 | PHP_ENABLE_ZIP=TRUE \ 29 | IMAGE_NAME="tiredofit/freescout" \ 30 | IMAGE_REPO_URL="https://github.com/tiredofit/docker-freescout/" 31 | 32 | ADD build-assets /build-assets 33 | 34 | RUN source /assets/functions/00-container && \ 35 | set -x && \ 36 | package update && \ 37 | package upgrade && \ 38 | package install .freescout-run-deps \ 39 | expect \ 40 | git \ 41 | gnu-libiconv \ 42 | sed \ 43 | && \ 44 | \ 45 | php-ext prepare && \ 46 | php-ext reset && \ 47 | php-ext enable core && \ 48 | php-ext enable core && \ 49 | clone_git_repo ${FREESCOUT_REPO_URL} ${FREESCOUT_VERSION} /assets/install && \ 50 | mkdir -p vendor/natxet/cssmin/src && \ 51 | mkdir -p vendor/rap2hpoutre/laravel-log-viewer/src/controllers && \ 52 | if [ -d "/build-assets/src" ] ; then cp -Rp /build-assets/src/* /assets/install ; fi; \ 53 | if [ -d "/build-assets/scripts" ] ; then for script in /build-assets/scripts/*.sh; do echo "** Applying $script"; bash $script; done && \ ; fi ; \ 54 | if [ -d "/build-assets/custom-scripts" ] ; then mkdir -p /assets/custom-scripts ; cp -Rp /build-assets/custom-scripts/* /assets/custom-scripts ; fi; \ 55 | composer install --ignore-platform-reqs && \ 56 | php artisan freescout:build && \ 57 | rm -rf \ 58 | /assets/install/.env.example \ 59 | /assets/install/.env.travis \ 60 | && \ 61 | chown -R "${NGINX_USER}":"${NGINX_GROUP}" /assets/install && \ 62 | package cleanup && \ 63 | \ 64 | rm -rf /build-assets \ 65 | /root/.composer \ 66 | /var/tmp/* 67 | 68 | COPY install / 69 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2024 Dave Conroy 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # github.com/tiredofit/docker-freescout 2 | 3 | [![GitHub release](https://img.shields.io/github/v/tag/tiredofit/docker-freescout?style=flat-square)](https://github.com/tiredofit/docker-freescout/releases/latest) 4 | [![Build Status](https://img.shields.io/github/actions/workflow/status/tiredofit/docker-freescout/main.yml?branch=main&style=flat-square)](https://github.com/tiredofit/docker-freescout/actions) 5 | [![Docker Stars](https://img.shields.io/docker/stars/tiredofit/freescout.svg?style=flat-square&logo=docker)](https://hub.docker.com/r/tiredofit/freescout/) 6 | [![Docker Pulls](https://img.shields.io/docker/pulls/tiredofit/freescout.svg?style=flat-square&logo=docker)](https://hub.docker.com/r/tiredofit/freescout/) 7 | [![Become a sponsor](https://img.shields.io/badge/sponsor-tiredofit-181717.svg?logo=github&style=flat-square)](https://github.com/sponsors/tiredofit) 8 | [![Paypal Donate](https://img.shields.io/badge/donate-paypal-00457c.svg?logo=paypal&style=flat-square)](https://www.paypal.me/tiredofit) 9 | 10 | * * * 11 | ## About 12 | 13 | This will build a Docker Image for [FreeScout](https://freescout.net/) - An open source Helpscout / Zendesk alternative. 14 | 15 | * Automatically installs and sets up installation upon first start 16 | 17 | ## Maintainer 18 | 19 | - [Dave Conroy](https://github.com/tiredofit) 20 | 21 | ## Table of Contents 22 | 23 | 24 | - [About](#about) 25 | - [Maintainer](#maintainer) 26 | - [Table of Contents](#table-of-contents) 27 | - [Prerequisites and Assumptions](#prerequisites-and-assumptions) 28 | - [Installation](#installation) 29 | - [Build from Source](#build-from-source) 30 | - [Prebuilt Images](#prebuilt-images) 31 | - [Configuration](#configuration) 32 | - [Quick Start](#quick-start) 33 | - [Persistent Storage](#persistent-storage) 34 | - [Environment Variables](#environment-variables) 35 | - [Base Images used](#base-images-used) 36 | - [Networking](#networking) 37 | - [Maintenance](#maintenance) 38 | - [Shell Access](#shell-access) 39 | - [Support](#support) 40 | - [Usage](#usage) 41 | - [Bugfixes](#bugfixes) 42 | - [Feature Requests](#feature-requests) 43 | - [Updates](#updates) 44 | - [License](#license) 45 | - [References](#references) 46 | 47 | ## Prerequisites and Assumptions 48 | * Assumes you are using some sort of SSL terminating reverse proxy such as: 49 | * [Traefik](https://github.com/tiredofit/docker-traefik) 50 | * [Nginx](https://github.com/jc21/nginx-proxy-manager) 51 | * [Caddy](https://github.com/caddyserver/caddy) 52 | * Requires access to a MySQL/MariaDB or Postgres Server 53 | 54 | ## Installation 55 | 56 | ### Build from Source 57 | Clone this repository and build the image with `docker build -t (imagename) .` 58 | 59 | ### Prebuilt Images 60 | Builds of the image are available on [Docker Hub](https://hub.docker.com/r/tiredofit/freescout) 61 | 62 | ```bash 63 | docker pull docker.io/tiredofit/freescout:(imagetag) 64 | ``` 65 | 66 | Builds of the image are also available on the [Github Container Registry](https://github.com/tiredofit/docker-freescout/pkgs/container/docker-freescout) 67 | 68 | ``` 69 | docker pull ghcr.io/tiredofit/docker-freescout:(imagetag) 70 | ``` 71 | 72 | The following image tags are available along with their tagged release based on what's written in the [Changelog](CHANGELOG.md): 73 | 74 | | Container OS | Tag | 75 | | ------------ | --------- | 76 | | Alpine | `:latest` | 77 | 78 | ## Configuration 79 | 80 | ### Quick Start 81 | 82 | - The quickest way to get started is using [docker-compose](https://docs.docker.com/compose/). See the examples folder for a working [docker-compose.yml](examples/docker-compose.yml) that can be modified for development or production use. 83 | 84 | - Set various [environment variables](#environment-variables) to understand the capabilities of this image. 85 | - Map [persistent storage](#data-volumes) for access to configuration and data files for backup. 86 | - Make [networking ports](#networking) available for public access if necessary 87 | 88 | **The first boot can take from 2 minutes - 5 minutes depending on your CPU to setup the proper schemas.** 89 | 90 | - Login to the web server and enter in your admin email address, admin password and start configuring the system! 91 | 92 | ### Persistent Storage 93 | The following directories are used for configuration and can be mapped for persistent storage. 94 | 95 | | Directory | Description | 96 | | ------------------------ | ------------------------------------------------------------------------------------------------------------------------ | 97 | | `/www/logs` | Nginx and PHP Log files | 98 | | `/assets/custom` | (Optional) Copy source code over existing source code in /www/html upon container start. Use exact file/folder structure | 99 | | `/assets/custom-scripts` | (Optional) If you want to execute custom scripting, place scripts here with extension `.sh` | 100 | | `/assets/modules` | (Optional) If you want to add additional modules outside of the source tree, add them here | 101 | | `/www/html` | (Optional) If you want to expose the Freescout sourcecode and enable Self Updating, expose this volume | 102 | | *OR* | | 103 | | `/data` | Hold onto your persistent sessions and cache between container restarts | 104 | 105 | ### Environment Variables 106 | 107 | #### Base Images used 108 | 109 | This image relies on an [Alpine Linux](https://hub.docker.com/r/tiredofit/alpine) or [Debian Linux](https://hub.docker.com/r/tiredofit/debian) base image that relies on an [init system](https://github.com/just-containers/s6-overlay) for added capabilities. Outgoing SMTP capabilities are handlded via `msmtp`. Individual container performance monitoring is performed by [zabbix-agent](https://zabbix.org). Additional tools include: `bash`,`curl`,`less`,`logrotate`,`nano`. 110 | 111 | Be sure to view the following repositories to understand all the customizable options: 112 | 113 | | Image | Description | 114 | | ------------------------------------------------------------- | -------------------------------------- | 115 | | [OS Base](https://github.com/tiredofit/docker-alpine/) | Customized Image based on Alpine Linux | 116 | | [Nginx](https://github.com/tiredofit/docker-nginx/) | Nginx webserver | 117 | | [PHP-FPM](https://github.com/tiredofit/docker-nginx-php-fpm/) | PHP Interpreter | 118 | 119 | 120 | | Parameter | Description | Default | `_FILE` | 121 | | -------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------- | ------- | 122 | | `ADMIN_EMAIL` | Administrator Email Address - Needed for logging in | | x | 123 | | `ADMIN_FIRST_NAME` | Admin user First Name | `Admin` | x | 124 | | `ADMIN_LAST_NAME` | Admin user First Name | `User` | x | 125 | | `ADMIN_PASS` | Administrator Password - Needed for Logging in | | x | 126 | | `APPLICATION_NAME` | Change default application name - Default `Freescout` | `freescout` | | 127 | | `APP_PROXY` | Allow Application to use a proxy for fetching modules | | | 128 | | `APP_TRUSTED_PROXIES` | Comma separated list of trusted proxies, i.e. `192.168.1.1,192.168.1.2,192.168.1.3` | | | 129 | | `APP_SINCE_WITHOUT_QUOTES_ON_FETCHING` | Allow to disable quotes around SINCE date in IMAP search | `FALSE` | | 130 | | `APP_X_FRAME_OPTIONS` | Allow to embed via iframes `TRUE` `FALSE` `DENY` `ALLOW FROM example.org` | `TRUE` | | 131 | | `DB_TYPE` | Type of the Database. Currently supported are `mysql` and `pgsql` | `mysql` | | 132 | | `DB_PGSQL_SSL_MODE` | Postgresql TLS Mode | `prefer` | | 133 | | `DB_HOST` | Host or container name of the Databse Server e.g. `freescout-db` | | x | 134 | | `DB_PORT` | Database Port e.g.`3306` for mysql, `5432` for postgres | `3306` | x | 135 | | `DB_NAME` | Database name e.g. `freescout` | | x | 136 | | `DB_USER` | Username for above Database e.g. `freescout` | | x | 137 | | `DB_PASS` | Password for above Database e.g. `password` | | x | 138 | | `DB_SSL` | Used to enable SSL support for MySQL and MariaDB databases | `FALSE` | | 139 | | `DISPLAY_ERRORS` | Display Errors on Website | `FALSE` | | 140 | | `ENABLE_AUTO_UPDATE` | If coming from an earlier version of image, automatically update it to latest Freescout release | `TRUE` | | 141 | | `SETUP_TYPE` | Automatically edit configuration after first bootup `AUTO` or `MANUAL` | `AUTO` | | 142 | | `SITE_URL` | The url your site listens on example `https://freescout.example.com` | | | 143 | | `SKIP_STORAGE_PERMISSIONS` | Skip applying permission to storage path, e.g. for instances involving large storage paths | `FALSE` | | 144 | 145 | 146 | ### Networking 147 | 148 | The following ports are exposed. 149 | 150 | | Port | Description | 151 | | ---- | ----------- | 152 | | `80` | HTTP | 153 | 154 | * * * 155 | ## Maintenance 156 | 157 | ### Shell Access 158 | 159 | For debugging and maintenance purposes you may want access the containers shell. 160 | 161 | ``bash 162 | docker exec -it (whatever your container name is) bash 163 | `` 164 | ## Support 165 | 166 | These images were built to serve a specific need in a production environment and gradually have had more functionality added based on requests from the community. 167 | ### Usage 168 | - The [Discussions board](../../discussions) is a great place for working with the community on tips and tricks of using this image. 169 | - [Sponsor me](https://tiredofit.ca/sponsor) for personalized support 170 | ### Bugfixes 171 | - Please, submit a [Bug Report](issues/new) if something isn't working as expected. I'll do my best to issue a fix in short order. 172 | 173 | ### Feature Requests 174 | - Feel free to submit a feature request, however there is no guarantee that it will be added, or at what timeline. 175 | - [Sponsor me](https://tiredofit.ca/sponsor) regarding development of features. 176 | 177 | ### Updates 178 | - Best effort to track upstream changes, More priority if I am actively using the image in a production environment. 179 | - [Sponsor me](https://tiredofit.ca/sponsor) for up to date releases. 180 | 181 | ## License 182 | MIT. See [LICENSE](LICENSE) for more details. 183 | 184 | ## References 185 | 186 | * 187 | * 188 | -------------------------------------------------------------------------------- /build-assets/custom-scripts/.empty: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiredofit/docker-freescout/7e7c9672dc4df41450c1cdba3bb2e2b342109436/build-assets/custom-scripts/.empty -------------------------------------------------------------------------------- /build-assets/scripts/.empty: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiredofit/docker-freescout/7e7c9672dc4df41450c1cdba3bb2e2b342109436/build-assets/scripts/.empty -------------------------------------------------------------------------------- /build-assets/src/.empty: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiredofit/docker-freescout/7e7c9672dc4df41450c1cdba3bb2e2b342109436/build-assets/src/.empty -------------------------------------------------------------------------------- /examples/docker-compose-no-proxy.yml: -------------------------------------------------------------------------------- 1 | version: '2' 2 | 3 | services: 4 | freescout-app: 5 | image: tiredofit/freescout 6 | container_name: freescout-app 7 | ports: 8 | - 80:80 9 | links: 10 | - freescout-db 11 | volumes: 12 | ### If you want to perform customizations to the source and have access to it, then uncomment this line - This includes modules 13 | #- ./data:/www/html 14 | ### Or, if you just want to use Stock Freescout and hold onto persistent files like cache and session use this, one or the other. 15 | - ./data:/data 16 | ### If you want to just keep the original source and add additional modules uncomment this line 17 | #- ./modules:/www/html/Modules 18 | - ./logs/:/www/logs 19 | environment: 20 | - CONTAINER_NAME=freescout-app 21 | 22 | - DB_HOST=freescout-db 23 | - DB_NAME=freescout 24 | - DB_USER=freescout 25 | - DB_PASS=freescout 26 | 27 | - SITE_URL=http://freescout.example.com 28 | - ADMIN_EMAIL=admin@admin.com 29 | - ADMIN_PASS=freescout 30 | - ENABLE_SSL_PROXY=FALSE 31 | - DISPLAY_ERRORS=FALSE 32 | - TIMEZONE=America/Vancouver 33 | restart: always 34 | 35 | freescout-db: 36 | image: tiredofit/mariadb 37 | container_name: freescout-db 38 | volumes: 39 | - ./db:/var/lib/mysql 40 | environment: 41 | - ROOT_PASS=password 42 | - DB_NAME=freescout 43 | - DB_USER=freescout 44 | - DB_PASS=freescout 45 | 46 | - CONTAINER_NAME=freescout-db 47 | restart: always 48 | 49 | freescout-db-backup: 50 | container_name: freescout-db-backup 51 | image: tiredofit/db-backup 52 | links: 53 | - freescout-db 54 | volumes: 55 | - ./dbbackup:/backup 56 | environment: 57 | - CONTAINER_NAME=freescout-db-backup 58 | - DB_HOST=freescout-db 59 | - DB_TYPE=mariadb 60 | - DB_NAME=freescout 61 | - DB_USER=freescout 62 | - DB_PASS=freescout 63 | - DB01_BACKUP_INTERVAL=1440 64 | - DB01_BACKUP_BEGIN=0000 65 | - DB_CLEANUP_TIME=8640 66 | - COMPRESSION=BZ 67 | - MD5=TRUE 68 | restart: always 69 | -------------------------------------------------------------------------------- /examples/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '2' 2 | 3 | services: 4 | 5 | freescout-app: 6 | image: tiredofit/freescout 7 | container_name: freescout-app 8 | links: 9 | - freescout-db 10 | volumes: 11 | ### If you want to perform customizations to the source and have access to it, then uncomment this line - This includes modules 12 | #- ./data:/www/html 13 | ### Or, if you just want to use Stock Freescout and hold onto persistent files like cache and session use this, one or the other. 14 | - ./data:/data 15 | ### If you want to just keep the original source and add additional modules uncomment this line 16 | #- ./modules:/www/html/Modules 17 | - ./logs/:/www/logs 18 | environment: 19 | - VIRTUAL_HOST=freescout.example.com 20 | - VIRTUAL_NETWORK=nginx-proxy 21 | - VIRTUAL_PORT=80 22 | - LETSENCRYPT_HOST=freescout.example.com 23 | - LETSENCRYPT_EMAIL=admin@example.com 24 | 25 | - CONTAINER_NAME=freescout-app 26 | 27 | - DB_HOST=freescout-db 28 | - DB_NAME=freescout 29 | - DB_USER=freescout 30 | - DB_PASS=freescout 31 | 32 | - SITE_URL=https://freescout.example.com 33 | - ADMIN_EMAIL=admin@admin.com 34 | - ADMIN_PASS=freescout 35 | - ENABLE_SSL_PROXY=TRUE 36 | - DISPLAY_ERRORS=FALSE 37 | - TIMEZONE=America/Vancouver 38 | networks: 39 | - proxy-tier 40 | restart: always 41 | 42 | freescout-db: 43 | image: tiredofit/mariadb 44 | container_name: freescout-db 45 | volumes: 46 | - ./db:/var/lib/mysql 47 | environment: 48 | - ROOT_PASS=password 49 | - DB_NAME=freescout 50 | - DB_USER=freescout 51 | - DB_PASS=freescout 52 | 53 | - CONTAINER_NAME=freescout-db 54 | networks: 55 | - proxy-tier 56 | restart: always 57 | 58 | freescout-db-backup: 59 | container_name: freescout-db-backup 60 | image: tiredofit/db-backup 61 | links: 62 | - freescout-db 63 | volumes: 64 | - ./dbbackup:/backup 65 | environment: 66 | - CONTAINER_NAME=freescout-db-backup 67 | - DB_HOST=freescout-db 68 | - DB_TYPE=mariadb 69 | - DB_NAME=freescout 70 | - DB_USER=freescout 71 | - DB_PASS=freescout 72 | - DB01_BACKUP_INTERVAL=1440 73 | - DB01_BACKUP_BEGIN=0000 74 | - DB_CLEANUP_TIME=8640 75 | - COMPRESSION=BZ 76 | - MD5=TRUE 77 | networks: 78 | - proxy-tier 79 | restart: always 80 | 81 | 82 | networks: 83 | proxy-tier: 84 | external: 85 | name: nginx-proxy 86 | 87 | 88 | -------------------------------------------------------------------------------- /install/assets/defaults/30-freescout: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv bash 2 | 3 | ADMIN_FIRST_NAME=${ADMIN_FIRST_NAME:-"Admin"} 4 | ADMIN_LAST_NAME=${ADMIN_LAST_NAME:-"User"} 5 | APPLICATION_NAME=${APPLICATION_NAME:-"FreeScout"} 6 | APP_SINCE_WITHOUT_QUOTES_ON_FETCHING=${APP_SINCE_WITHOUT_QUOTES_ON_FETCHING:-"FALSE"} 7 | APP_X_FRAME_OPTIONS=${APP_X_FRAME_OPTIONS:-"TRUE"} 8 | DB_PGSQL_SSL_MODE=${DB_PGSQL_SSL_MODE:-"prefer"} 9 | DB_PORT=${DB_PORT:-3306} 10 | DB_TYPE=${DB_TYPE:-"mysql"} 11 | DB_SSL=${DB_SSL:-"FALSE"} 12 | ENABLE_AUTO_UPDATE=${ENABLE_AUTO_UPDATE:-"TRUE"} 13 | SETUP_TYPE=${SETUP_TYPE:-"AUTO"} 14 | SKIP_STORAGE_PERMISSIONS=${SKIP_STORAGE_PERMISSIONS:-"FALSE"} -------------------------------------------------------------------------------- /install/etc/cont-init.d/30-freescout: -------------------------------------------------------------------------------- 1 | #!/command/with-contenv bash 2 | 3 | source /assets/functions/00-container 4 | prepare_service 5 | PROCESS_NAME="freescout" 6 | 7 | check_service_initialized init 20-php-fpm 8 | 9 | ### Check if New Install 10 | if [ ! -f "${NGINX_WEBROOT}/server.php" ]; then 11 | print_warn "Potential New Installation / Standalone Installation Detected - Copying Freescout Sourcecode" 12 | cp -R /assets/install/* "${NGINX_WEBROOT}" 13 | 14 | ### If running with /www/html or NGINX_WEBROOT mapped, then create persistent storage 15 | ### Storage redirection 16 | if [ -d "/data" ]; then 17 | print_warn "Detected /data directory. Persistently saving settings/sessions/cache/uploads/modules" 18 | if [ ! -d "/data/storage" ]; then 19 | cp -R "${NGINX_WEBROOT}"/storage /data 20 | fi 21 | if [ ! -d "/data/Modules" ]; then 22 | cp -R "${NGINX_WEBROOT}"/Modules /data 23 | fi 24 | rm -rf "${NGINX_WEBROOT}"/storage 25 | ln -s /data/storage "${NGINX_WEBROOT}"/storage 26 | if [ -d "/data/storage/app/public/attachment" ]; then 27 | print_notice "Handling Migration to Freescout 1.5.0 private application attachments" 28 | mkdir -p /data/storage/app/attachment 29 | mv /data/storage/app/public/attachment/* /data/storage/app/attachment 30 | rm -rf /data/storage/app/public/attachment 31 | fi 32 | rm -rf "${NGINX_WEBROOT}"/Modules 33 | ln -s /data/Modules "${NGINX_WEBROOT}"/Modules 34 | ln -sf /data/config "${NGINX_WEBROOT}"/.env 35 | touch /data/config 36 | chown "${NGINX_USER}":"${NGINX_GROUP}" "${NGINX_WEBROOT}"/.env 37 | ln -sf /data/.freescout-version "${NGINX_WEBROOT}"/.freescout-version 38 | chown -R "${NGINX_USER}":"${NGINX_GROUP}" /data 39 | fi 40 | 41 | ### Auto Upgrade functionality 42 | if [ ! -f "${NGINX_WEBROOT}/.freescout-version" ]; then 43 | echo "${FREESCOUT_VERSION} first installed on $(date)" >> "${NGINX_WEBROOT}"/.freescout-version 44 | fi 45 | chown -R "${NGINX_USER}":"${NGINX_GROUP}" "${NGINX_WEBROOT}" 46 | else 47 | if [ "$ENABLE_AUTO_UPDATE" = "TRUE" ]; then 48 | if [ "$FREESCOUT_VERSION" != $(head -n 1 "${NGINX_WEBROOT}"/.freescout-version | awk '{print $1'}) ]; then 49 | print_warn "Detected in place Freescout version $(head -n 1 "${NGINX_WEBROOT}"/.freescout-version | awk "{print $1"}) - Upgrading to ${FREESCOUT_VERSION}" 50 | cp -R /assets/install/* "${NGINX_WEBROOT}" 51 | chown -R "${NGINX_USER}":"${NGINX_GROUP}" "${NGINX_WEBROOT}" 52 | cd "${NGINX_WEBROOT}"|| exit 53 | silent sudo -u "${NGINX_USER}" php artisan freescout:after-app-update 54 | # 1.7.16 -> 1.7.17 55 | if ! grep -Fxrq "SESSION_SECURE_COOKIE=.*" "${NGINX_WEBROOT}"/.env ; then 56 | echo "SESSION_SECURE_COOKIE=false" | silent sudo -u "${NGINX_USER}" tee -a "${NGINX_WEBROOT}"/.env 57 | fi 58 | UPGRADE=TRUE 59 | sed -i --follow-symlinks "1 i\ 60 | ${FREESCOUT_VERSION} upgraded on $(date)" /www/html/.freescout-version 61 | fi 62 | fi 63 | fi 64 | 65 | ### Logfile redirection 66 | mkdir -p /www/logs/freescout 67 | chown -R "${NGINX_USER}":"${NGINX_GROUP}" /www/logs/freescout 68 | rm -rf "${NGINX_WEBROOT}"/storage/logs 69 | ln -sf /www/logs/freescout "${NGINX_WEBROOT}"/storage/logs 70 | 71 | ## Copy over any custom modules overtop of existing 72 | if [ -d "/assets/modules" ]; then 73 | print_warn "Detected Custom Modules - Adding to application" 74 | cp -R /assets/modules/* "${NGINX_WEBROOT}"/Modules/ 75 | chown -R "${NGINX_USER}":"${NGINX_GROUP}" "${NGINX_WEBROOT}"/Modules/ 76 | fi 77 | 78 | custom_files "${CONTAINER_CUSTOM_PATH}" "${NGINX_WEBROOT}" "${NGINX_USER}" "${NGINX_GROUP}" 79 | custom_scripts 80 | 81 | ### Change Application Name 82 | sed -i "s#'name' => '.*',#'name' => '${APPLICATION_NAME}',#g" "${NGINX_WEBROOT}"/config/app.php 83 | 84 | ### Dynamically Create Configuration 85 | transform_file_var \ 86 | DB_HOST \ 87 | DB_NAME \ 88 | DB_PASS \ 89 | DB_PORT \ 90 | DB_USER 91 | 92 | if grep -q "APP_URL" "${NGINX_WEBROOT}"/.env > /dev/null 2>&1; then 93 | if [ "${SETUP_TYPE,,}" = "auto" ]; then 94 | sanity_db 95 | sanity_var SITE_URL "Site URL" 96 | db_ready "${DB_TYPE}" 97 | 98 | print_info "Auto Configuring based on Environment Variables" 99 | # Proxy and Host Settings 100 | if [ -z "${SITE_URL}" ]; then 101 | if [ -n "${APP_URL}" ]; then 102 | sed -i --follow-symlinks "s#APP_URL=.*#APP_URL=${APP_URL}#g" "${NGINX_WEBROOT}"/.env 103 | fi 104 | else 105 | sed -i --follow-symlinks "s#APP_URL=.*#APP_URL=${SITE_URL}#g" "${NGINX_WEBROOT}"/.env 106 | fi 107 | 108 | case $(echo ${SITE_URL,,} | cut -d : -f1) in 109 | http ) 110 | sed -i --follow-symlinks "s#SESSION_SECURE_COOKIE=.*#SESSION_SECURE_COOKIE=false#g" "${NGINX_WEBROOT}"/.env 111 | ;; 112 | https ) 113 | sed -i --follow-symlinks "s#SESSION_SECURE_COOKIE=.*#SESSION_SECURE_COOKIE=true#g" "${NGINX_WEBROOT}"/.env 114 | ;; 115 | esac 116 | 117 | if var_true "${APP_DEBUG}" || var_true "${DISPLAY_ERRORS}" ; then 118 | sed -i --follow-symlinks "s#APP_DEBUG=.*#APP_DEBUG=true#g" "${NGINX_WEBROOT}"/.env 119 | else 120 | sed -i --follow-symlinks "s#APP_DEBUG=.*#APP_DEBUG=false#g" "${NGINX_WEBROOT}"/.env 121 | fi 122 | 123 | if [ "$DB_TYPE,,}" = "pgsql" ] ; then 124 | if ! grep -Fxrq "DB_PGSQL_SSL_MODE=" "${NGINX_WEBROOT}"/.env ; then 125 | sed -i --follow-symlinks "/DB_TYPE=pgsql/a DB_PGSQL_SSL_MODE=${DB_PGSQL_SSL_MODE}" "${NGINX_WEBROOT}"/.env 126 | else 127 | sed -i --follow-symlinks "s#DB_PGSQL_SSL_MODE=.*#DB_PGSQL_SSL_MODE=${DB_PGSQL_SSL_MODE}#g" "${NGINX_WEBROOT}"/.env 128 | fi 129 | fi 130 | sed -i --follow-symlinks "s#DB_HOST=.*#DB_HOST=${DB_HOST}#g" "${NGINX_WEBROOT}"/.env 131 | sed -i --follow-symlinks "s#DB_PORT=.*#DB_PORT=${DB_PORT}#g" "${NGINX_WEBROOT}"/.env 132 | sed -i --follow-symlinks "s#DB_DATABASE=.*#DB_DATABASE=${DB_NAME}#g" "${NGINX_WEBROOT}"/.env 133 | sed -i --follow-symlinks "s#DB_USERNAME=.*#DB_USERNAME=${DB_USER}#g" "${NGINX_WEBROOT}"/.env 134 | sed -i --follow-symlinks "s#DB_PASSWORD=.*#DB_PASSWORD=${DB_PASS}#g" "${NGINX_WEBROOT}"/.env 135 | 136 | # Private Attachment support (Freescout 1.5.0) 137 | if grep -q "APP_DOWNLOAD_ATTACHMENTS_VIA" "${NGINX_WEBROOT}"/.env > /dev/null 2>&1; then 138 | sed -i --follow-symlinks "/APP_DOWNLOAD_ATTACHMENTS_VIA=nginx/d" "${NGINX_WEBROOT}"/.env 139 | fi 140 | 141 | # Disable App Updating 142 | if ! grep -q "APP_DISABLE_UPDATING" "${NGINX_WEBROOT}"/.env > /dev/null 2>&1; then 143 | echo "APP_DISABLE_UPDATING=true" | sudo -u "${NGINX_USER}" tee -a "${NGINX_WEBROOT}"/.env 144 | fi 145 | 146 | # App Proxy (1.8.25) 147 | if ! grep -q "APP_PROXY" "${NGINX_WEBROOT}"/.env > /dev/null 2>&1; then 148 | echo "APP_PROXY=${APP_PROXY}" | sudo -u "${NGINX_USER}" tee -a "${NGINX_WEBROOT}"/.env 149 | else 150 | sed -i --follow-symlinks "s#APP_PROXY=.*#APP_PROXY=${APP_PROXY}#g" "${NGINX_WEBROOT}"/.env 151 | fi 152 | 153 | if ! grep -q "APP_X_FRAME_OPTIONS" "${NGINX_WEBROOT}"/.env > /dev/null 2>&1; then 154 | echo "APP_X_FRAME_OPTIONS=${APP_X_FRAME_OPTIONS}" | sudo -u "${NGINX_USER}" tee -a "${NGINX_WEBROOT}"/.env 155 | else 156 | sed -i --follow-symlinks "s#APP_X_FRAME_OPTIONS=.*#APP_X_FRAME_OPTIONS=${APP_X_FRAME_OPTIONS}#g" "${NGINX_WEBROOT}"/.env 157 | fi 158 | 159 | if ! grep -q "APP_SINCE_WITHOUT_QUOTES_ON_FETCHING" "${NGINX_WEBROOT}"/.env > /dev/null 2>&1; then 160 | echo "APP_SINCE_WITHOUT_QUOTES_ON_FETCHING=${APP_SINCE_WITHOUT_QUOTES_ON_FETCHING}" | sudo -u "${NGINX_USER}" tee -a "${NGINX_WEBROOT}"/.env 161 | else 162 | sed -i --follow-symlinks "s#APP_SINCE_WITHOUT_QUOTES_ON_FETCHING=.*#APP_SINCE_WITHOUT_QUOTES_ON_FETCHING=${APP_SINCE_WITHOUT_QUOTES_ON_FETCHING}#g" "${NGINX_WEBROOT}"/.env 163 | fi 164 | else 165 | print_info "Skipping Auto configuration and using in place .env" 166 | fi 167 | if [ -f /data/config ]; then 168 | chown "${NGINX_USER}":"${NGINX_GROUP}" /data/config 169 | chmod 0755 /data/config 170 | fi 171 | else 172 | ### Sanity Test 173 | sanity_db 174 | sanity_var SITE_URL "Site URL" 175 | db_ready "${DB_TYPE}" 176 | 177 | print_info "Generating Configuration" 178 | touch "${NGINX_WEBROOT}"/.env 179 | chown "${NGINX_USER}":"${NGINX_GROUP}" "${NGINX_WEBROOT}"/.env 180 | echo "#### Automatically Generated File - Upon container restart any settings will reset!" | silent sudo -u "${NGINX_USER}" tee "${NGINX_WEBROOT}"/.env 181 | # Proxy and HostSettings 182 | if [ -z "${SITE_URL}" ]; then 183 | if [ -n "${APP_URL}" ]; then 184 | echo "APP_URL=$APP_URL" | silent sudo -u "${NGINX_USER}" tee -a "${NGINX_WEBROOT}"/.env 185 | fi 186 | else 187 | echo "APP_URL=$SITE_URL" | silent sudo -u "${NGINX_USER}" tee -a "${NGINX_WEBROOT}"/.env 188 | fi 189 | 190 | case $(echo ${SITE_URL,,} | cut -d : -f1) in 191 | http ) 192 | echo "SESSION_SECURE_COOKIE=false" | silent sudo -u "${NGINX_USER}" tee -a "${NGINX_WEBROOT}"/.env 193 | ;; 194 | https ) 195 | echo "SESSION_SECURE_COOKIE=true" | silent sudo -u "${NGINX_USER}" tee -a "${NGINX_WEBROOT}"/.env 196 | ;; 197 | esac 198 | 199 | if [ -n "${APP_PROXY}" ] ; then 200 | echo "APP_PROXY=${APP_PROXY}" | silent sudo -u "${NGINX_USER}" tee -a "${NGINX_WEBROOT}"/.env 201 | fi 202 | 203 | if [ -n "${APP_TRUSTED_PROXIES}" ] ; then 204 | echo "APP_TRUSTED_PROXIES=${APP_TRUSTED_PROXIES}" | silent sudo -u "${NGINX_USER}" tee -a "${NGINX_WEBROOT}"/.env 205 | fi 206 | 207 | if var_true "${APP_DEBUG}" || var_true "${DISPLAY_ERRORS}" ; then 208 | echo "APP_DEBUG=true" | silent sudo -u "${NGINX_USER}" tee -a "${NGINX_WEBROOT}"/.env 209 | else 210 | echo "APP_DEBUG=false" | silent sudo -u "${NGINX_USER}" tee -a "${NGINX_WEBROOT}"/.env 211 | fi 212 | 213 | echo "APP_KEY=" | silent sudo -u "${NGINX_USER}" tee -a "${NGINX_WEBROOT}"/.env 214 | 215 | # Set DB Settings 216 | echo "DB_CONNECTION=$DB_TYPE" | silent sudo -u "${NGINX_USER}" tee -a "${NGINX_WEBROOT}"/.env 217 | echo "DB_HOST=$DB_HOST" | silent sudo -u "${NGINX_USER}" tee -a "${NGINX_WEBROOT}"/.env 218 | echo "DB_PORT=$DB_PORT" | silent sudo -u "${NGINX_USER}" tee -a "${NGINX_WEBROOT}"/.env 219 | echo "DB_DATABASE=$DB_NAME" | silent sudo -u "${NGINX_USER}" tee -a "${NGINX_WEBROOT}"/.env 220 | echo "DB_USERNAME=$DB_USER" | silent sudo -u "${NGINX_USER}" tee -a "${NGINX_WEBROOT}"/.env 221 | echo "DB_PASSWORD=$DB_PASS" | silent sudo -u "${NGINX_USER}" tee -a "${NGINX_WEBROOT}"/.env 222 | echo "APP_DISABLE_UPDATING=true" | silent sudo -u "${NGINX_USER}" tee -a "${NGINX_WEBROOT}"/.env 223 | 224 | # Generate Key 225 | cd "${NGINX_WEBROOT}"/ 226 | chown -R "${NGINX_USER}":"${NGINX_GROUP}" "${NGINX_WEBROOT}"/config 227 | if [ -f /data/config ]; then 228 | chown "${NGINX_USER}":"${NGINX_GROUP}" /data/config 229 | chmod 0755 /data/config 230 | fi 231 | silent sudo -u "${NGINX_USER}" php artisan key:generate 232 | fi 233 | 234 | ## Removals 235 | # 1.8.78 236 | sed -i --follow-symlinks "/APP_FORCE_HTTP=/d" "${NGINX_WEBROOT}"/.env 237 | 238 | ### Cleanup 239 | cd "${NGINX_WEBROOT}"/ 240 | silent sudo -u "${NGINX_USER}" php artisan freescout:clear-cache 241 | silent sudo -u "${NGINX_USER}" php artisan config:clear 242 | silent sudo -u "${NGINX_USER}" php artisan storage:link 243 | 244 | ### Check to see if DB is populated 245 | if [ "${DB_TYPE}" = "mysql" ]; then 246 | case "${DB_SSL,,}" in 247 | true ) 248 | _mysql_ssl="--ssl" 249 | ;; 250 | false ) 251 | _mysql_ssl="--skip-ssl" 252 | ;; 253 | esac 254 | mysql ${_mysql_ssl} -u$DB_USER -p$DB_PASS -h$DB_HOST -P$DB_PORT -e "use "$DB_NAME"; SELECT * FROM users;" > /dev/null 2>&1 255 | elif [ "${DB_TYPE,,}" = "pgsql" ] || [ "${DB_TYPE,,}" = "postgres" ]; then 256 | export PGPASSWORD="${DB_PASS}" 257 | psql --dbname=postgresql://$DB_USER@$DB_HOST:$DB_PORT/$DB_NAME -c "SELECT * FROM users;" > /dev/null 2>&1 258 | fi 259 | 260 | if [ $? -gt 0 ]; then 261 | ### Perform Database Installtion Routines 262 | print_warn "Detected empty Database - Setting up - Please wait.." 263 | sleep 5 264 | silent sudo -u "${NGINX_USER}" php artisan migrate:fresh --force 265 | silent sudo -u "${NGINX_USER}" php artisan freescout:clear-cache 266 | transform_file_var \ 267 | ADMIN_EMAIL \ 268 | ADMIN_FIRST_NAME \ 269 | ADMIN_LAST_NAME \ 270 | ADMIN_PASS 271 | sanity_var ADMIN_EMAIL "Admin Email Address" 272 | sanity_var ADMIN_PASS "Admin Password" 273 | 274 | ### Create User 275 | print_warn "Creating Administrative User" 276 | cd "${NGINX_WEBROOT}" 277 | silent sudo -u "${NGINX_USER}" php artisan -n freescout:create-user --role=admin --firstName="${ADMIN_FIRST_NAME}" --lastName="${ADMIN_LAST_NAME}" --email="${ADMIN_EMAIL}" --password="${ADMIN_PASS}" 278 | fi 279 | 280 | cd "${NGINX_WEBROOT}" 281 | chown -R "${NGINX_USER}":"${NGINX_GROUP}" bootstrap/cache public/css/builds public/js/builds 282 | chmod -R ug+rwx bootstrap/cache public/css/builds public/js/builds 283 | if var_false "${SKIP_STORAGE_PERMISSIONS}" ; then 284 | chown -R "${NGINX_USER}":"${NGINX_GROUP}" storage 285 | chmod -R ug+rwx storage 286 | fi 287 | 288 | chown -R "${NGINX_USER}":"${NGINX_GROUP}" "${NGINX_WEBROOT}" 289 | chmod ug+rwx "${NGINX_WEBROOT}" 290 | 291 | ### Install symlinks for modules that may have been previously installed 292 | if [ "$(ls -A /www/html/Modules)" ]; then 293 | print_warn "Installing Modules into container" 294 | silent /usr/bin/expect<> /root/.bashrc < "${CONTAINER_SCHEDULING_LOCATION}"/freescout-schedule 341 | # Hardcoded in image in /etc/cont-init.d/$(basename "$0") 342 | # Generated on $(TZ=${TIMEZONE} date +'%Y-%m-%d %H:%M:%S %Z') 343 | 344 | * * * * * sudo -u ${NGINX_USER} TZ=${TIMEZONE} php ${NGINX_WEBROOT}/artisan schedule:run >> /dev/null 2>&1 ${_schedulebackground} 345 | EOF 346 | 347 | print_info "Initialization Complete. Please visit ${SITE_URL} and login with your credentials.." 348 | 349 | liftoff 350 | -------------------------------------------------------------------------------- /install/etc/nginx/sites.available/freescout.conf: -------------------------------------------------------------------------------- 1 | server { 2 | 3 | listen {{NGINX_LISTEN_PORT}}; 4 | root {{NGINX_WEBROOT}}/public; 5 | index index.php ; 6 | 7 | location / { 8 | try_files $uri $uri/ /index.php?$query_string; 9 | } 10 | 11 | location ~ \.php$ { 12 | include /etc/nginx/snippets/php-fpm.conf; 13 | try_files $uri =404; 14 | fastcgi_split_path_info ^(.+\.php)(/.+)$; 15 | fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 16 | fastcgi_index index.php; 17 | include fastcgi_params; 18 | } 19 | 20 | location ~* ^/storage/attachment/ { 21 | expires 1M; 22 | access_log off; 23 | try_files $uri $uri/ /index.php?$query_string; 24 | } 25 | 26 | location ~* ^/(?:css|js)/.*\.(?:css|js)$ { 27 | expires 2d; 28 | access_log off; 29 | add_header Cache-Control "public, must-revalidate"; 30 | } 31 | 32 | # The list should be in sync with /storage/app/public/uploads/.htaccess and /config/app.php 33 | location ~* ^/storage/.*\.((?!(jpg|jpeg|jfif|pjpeg|pjp|apng|bmp|gif|ico|cur|png|tif|tiff|webp|pdf|txt|diff|patch|json|mp3|wav|ogg|wma)).)*$ { 34 | add_header Content-disposition "attachment; filename=$2"; 35 | default_type application/octet-stream; 36 | } 37 | 38 | location ~* ^/(?:css|fonts|img|installer|js|modules|[^\\\]+\..*)$ { 39 | expires 1M; 40 | access_log off; 41 | add_header Cache-Control "public"; 42 | } 43 | 44 | location ~ /\. { 45 | deny all; 46 | } 47 | 48 | ### Don't edit past here 49 | include /etc/nginx/snippets/site_optimization.conf; 50 | include /etc/nginx/snippets/exploit_protection.conf; 51 | } 52 | 53 | 54 | --------------------------------------------------------------------------------