arnapou / simplesite
Project - Simple site system delivered as a standalone phar file.
v8.3
2024-12-18 22:11 UTC
Requires
- php: ~8.4.0
- arnapou/encoder: ^2.3
- arnapou/ensure: ^2.7
- arnapou/pfdb: ^6.4
- arnapou/psr-cache: ^1.0
- arnapou/psr-container: ^1.0
- arnapou/psr-http: ^1.0
- arnapou/zip: ^1.4
- erusev/parsedown: dev-master
- symfony/string: ^6.4
- symfony/translation-contracts: ^3.5
- symfony/yaml: ^6.4
- twig/markdown-extra: ^3.15
- twig/twig: ^3.9
Requires (Dev)
- ext-gd: *
- ext-imagick: *
- ext-yaml: *
- friendsofphp/php-cs-fixer: ^3.52
- phpstan/extension-installer: ^1.3
- phpstan/phpstan: ^2.0
- phpstan/phpstan-deprecation-rules: ^2.0
- phpstan/phpstan-phpunit: ^2.0
- phpstan/phpstan-strict-rules: ^2.0
- phpunit/php-code-coverage: ^11.0
- phpunit/phpunit: ^11.0
- symfony/css-selector: ^7.2
- symfony/dom-crawler: ^7.2
Suggests
- ext-gd: *
- ext-imagick: *
Replaces
- symfony/polyfill-ctype: *
- symfony/polyfill-intl-grapheme: *
- symfony/polyfill-intl-normalizer: *
- symfony/polyfill-mbstring: *
- symfony/polyfill-php54: *
- symfony/polyfill-php55: *
- symfony/polyfill-php56: *
- symfony/polyfill-php70: *
- symfony/polyfill-php71: *
- symfony/polyfill-php72: *
- symfony/polyfill-php73: *
- symfony/polyfill-php74: *
- symfony/polyfill-php80: *
- symfony/polyfill-php81: *
- symfony/polyfill-php82: *
- symfony/polyfill-php83: *
README
Links
Demo 👉️ https://simplesite.arnapou.net/
Article 👉️ https://arnapou.net/software/2019-phar-simplesite/
Phar file 👉️ bin/simplesite.phar
Docker
You can use the provided docker image directly.
Below is an example of a working docker compose file compose.yaml
.
services:
app:
image: registry.gitlab.com/arnapou/project/simplesite:v8
user: 1000:1000
# For local testing / dev -> http://localhost
ports: [ "80:80" ]
environment:
# FrankenPHP environment variables
# ╰─ https://github.com/dunglas/frankenphp/blob/main/caddy/frankenphp/Caddyfile
CADDY_GLOBAL_OPTIONS: "auto_https off" # (default)
SERVER_NAME: ":80" # (default)
# SimpleSite environment variables
SIMPLESITE_ADMIN: "admin" # Base path of the admin GUI.
# ╰─ http://localhost/admin/
# Default: "" (empty means disabled).
# For HTTPS / Production -> https://my-domain.com
# ports: [ "443:443" ]
# environment:
# CADDY_GLOBAL_OPTIONS: ""
# SERVER_NAME: "my-domain.com"
# If you need to bind all in one
volumes:
- ./:/app
# If you need to bind only some folders
# volumes:
# - ./local_path:/app/data # where the data are stored for the {{ app.db }} service
# - ./local_path:/app/log # the rotating log files
# - ./local_path:/app/pages # the path used to define twig pages, bound to "@pages" scope
# - ./local_path:/app/public # the public path for assets, bound to "@public" scope
# - ./local_path:/app/src # where to write php "plugins"
# - ./local_path:/app/templates # the template path for twig, bound to "@templates
Web server
You can directly use our php image if you want something working out of the box :
registry.gitlab.com/arnapou/docker/php:8.4-frankenphp
We recommend
- FrankenPHP
- Caddy with php-fpm backend
If you want to use Apache, we suggest a .htaccess
like this :
RewriteEngine On
DirectorySlash Off
FileETag MTime Size
Options -Indexes -MultiViews -ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule . index.php [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L,QSA]
Php versions
Date | Ref | 8.4 | 8.3 | 8.2 | 8.1 | 8.0 | 7.2 |
---|---|---|---|---|---|---|---|
10/12/2024 | 8.x, main | × | |||||
25/11/2024 | 7.x | × | |||||
26/11/2023 | 6.x | × | |||||
11/10/2023 | 5.x | × | |||||
19/12/2022 | 4.x | × | |||||
30/01/2022 | 3.x | × | |||||
15/05/2021 | 2.x | × | |||||
07/12/2019 | 1.x | × |