22 Commits
7.0.3 ... 8.2.1

Author SHA1 Message Date
Leo Khoa
6a9a83fb47 Improve AutoSSL 2025-05-25 18:43:37 +02:00
Leo Khoa
593338f8f8 Update the laragon core 2025-05-01 11:20:45 +02:00
Leo Khoa
f403e94463 Merge pull request #1147 from AhmedAlaa4611/master
Remove trailing whitespace
2025-05-01 11:18:15 +02:00
Ahmed Alaa
ec467a6f33 Remove trailing whitespace 2025-05-01 11:34:28 +03:00
Leo Khoa
4b7289618f Update resources info to match with the latest version 2025-04-23 17:57:22 +02:00
Leo Khoa
b716689318 Fixed license issue on old server
Crash when inserting license key in Laragon 8 on Windows Server 2012 R2
https://github.com/leokhoa/laragon/discussions/1106
2025-04-03 11:02:25 +02:00
Leo Khoa
b99af56576 Update Laragon 2025-04-03 10:48:48 +02:00
Leo Khoa
45219c7b39 Add files via upload 2025-03-24 10:02:51 +01:00
Leo Khoa
98a6ced6b0 Update CHANGELOG.md 2025-03-18 21:40:52 +01:00
Leo Khoa
620dc8bc72 Merge pull request #1077 from leokhoa/alxndr-w-patch-1
Update README.md with license information
2025-03-18 21:39:46 +01:00
Alexander Walther
3ad0d09569 Update README.md with license information 2025-03-18 13:21:43 +01:00
Leo Khoa
9fdd698e09 Fixed minor issues 2025-03-14 18:13:00 +01:00
Leo Khoa
ea6254fc80 Laragon 8.0.0 2025-03-13 21:25:13 +01:00
Leo Khoa
566be5ce9f Update sites.conf 2025-03-13 21:24:27 +01:00
Leo Khoa
959aab1bc7 Merge pull request #1057 from leokhoa/leokhoa-patch-3
Update packages.conf
2025-03-13 21:22:50 +01:00
Leo Khoa
3f0534e0e1 Update packages.conf 2025-03-13 21:22:11 +01:00
Leo Khoa
6d0ca768f9 Update packages.conf
Fix broken PHP links
2025-02-27 08:18:10 +01:00
Leo Khoa
1bf6169ffc Track changes from version 7.0.0 2025-02-06 11:04:39 +01:00
Leo Khoa
6959b13189 Fix css issue
https://github.com/leokhoa/laragon/issues/339
2025-02-03 22:33:56 +01:00
Leo Khoa
2631fda37b Fix bug #689
https://github.com/leokhoa/laragon/issues/689
2025-02-03 22:32:38 +01:00
Leo Khoa
3fcd32d767 Merge pull request #1007 from leokhoa/leokhoa-patch-2
Update SECURITY.md
2025-02-02 13:01:08 +01:00
Leo Khoa
b371252f27 Update SECURITY.md 2025-02-02 13:00:25 +01:00
24 changed files with 196 additions and 223 deletions

1
CHANGELOG.md Normal file
View File

@@ -0,0 +1 @@
https://github.com/leokhoa/laragon/releases

View File

@@ -6,12 +6,14 @@ Laragon is a portable, isolated, fast & powerful universal development environme
Laragon is great for building and managing modern web applications. It is focused on performance - designed around stability, simplicity, flexibility and freedom. Laragon is great for building and managing modern web applications. It is focused on performance - designed around stability, simplicity, flexibility and freedom.
Laragon is very lightweight and will stay as lean as possible. The core binary itself is less than 2MB and uses less than 4MB RAM when running. Laragon is very lightweight and will stay as lean as possible. The core binary itself is less than 6MB and uses around 4MB - 10MB RAM when running.
Laragon doesn't use Windows services. It has its own `service orchestration` which manages services asynchronously and non-blocking so you'll find things run fast & smoothly with Laragon. Laragon doesn't use Windows services. It has its own `service orchestration` which manages services asynchronously and non-blocking so you'll find things run fast & smoothly with Laragon.
Enjoy! Enjoy!
> Starting with Laragon 7.x, a license is required to use Laragon. For more details, visit <https://laragon.lemonsqueezy.com/>.
## Features ## Features
- **Pretty URLs** - **Pretty URLs**

View File

@@ -2,13 +2,12 @@
## Supported Versions ## Supported Versions
| Version | Supported | | Version | Supported |Reason |
| ------- | ------------------ | | ------- | ------------------ | ---------- |
| 7.x.x | :white_check_mark: | | >=7.0 | :white_check_mark: | |
| < 6.x | :x: | | <=6.0 | :x: | EOL |
## Reporting a Vulnerability ## Reporting a Vulnerability
For the moment, you can reach out @leokhoa via Slack: <https://laragon.slack.com/> - send a direct message. If you find a security vulnerability in Laragon, please report it via email to Leo Khoa at leo@laragon.org
We take security seriously, and all reports will be promptly addressed.
More options will be evaluated in the near future.

View File

@@ -13,5 +13,3 @@ SSLProxyProtocol all -SSLv3
SSLSessionCache "shmcb:logs/ssl_scache(512000)" SSLSessionCache "shmcb:logs/ssl_scache(512000)"
SSLSessionCacheTimeout 300 SSLSessionCacheTimeout 300

Binary file not shown.

View File

@@ -12,4 +12,3 @@
; My Cool App: autorun node start $PORT PORT=9000 env_file=usr\my_file.env PWD=usr/proj/myapp DB_HOST=1.2.3.4 DB_PORT=9999 DB_USER=user DB_PASS="!$Ab.cs3cre1" DB_NAME=cooldb ; My Cool App: autorun node start $PORT PORT=9000 env_file=usr\my_file.env PWD=usr/proj/myapp DB_HOST=1.2.3.4 DB_PORT=9999 DB_USER=user DB_PASS="!$Ab.cs3cre1" DB_NAME=cooldb
; Awesome Tool: "PATH HAS SPACES SHOULD BE QUOTED LIKE THIS" ; Awesome Tool: "PATH HAS SPACES SHOULD BE QUOTED LIKE THIS"
------------------------------------------------------------------------------ ------------------------------------------------------------------------------

View File

@@ -12,4 +12,3 @@
; My Cool App: autorun node start $PORT PORT=9000 env_file=usr\my_file.env PWD=usr/proj/myapp DB_HOST=1.2.3.4 DB_PORT=9999 DB_USER=user DB_PASS="!$Ab.cs3cre1" DB_NAME=cooldb ; My Cool App: autorun node start $PORT PORT=9000 env_file=usr\my_file.env PWD=usr/proj/myapp DB_HOST=1.2.3.4 DB_PORT=9999 DB_USER=user DB_PASS="!$Ab.cs3cre1" DB_NAME=cooldb
; Awesome Tool: "PATH HAS SPACES SHOULD BE QUOTED LIKE THIS" ; Awesome Tool: "PATH HAS SPACES SHOULD BE QUOTED LIKE THIS"
------------------------------------------------------------------------------ ------------------------------------------------------------------------------

View File

@@ -1,25 +1,33 @@
# PHP # PHP
# https://windows.php.net/download/ # https://windows.php.net/download/
# NTS = Non Thread Safe # NTS = Non Thread Safe
*PHP-8.4=https://windows.php.net/downloads/releases/archives/php-8.4.2-nts-Win32-vs17-x64.zip *PHP-8.4=https://windows.php.net/downloads/releases/archives/php-8.4.3-nts-Win32-vs17-x64.zip
*PHP-8.3=https://windows.php.net/downloads/releases/archives/php-8.3.15-nts-Win32-vs16-x64.zip *PHP-8.3=https://windows.php.net/downloads/releases/archives/php-8.3.16-nts-Win32-vs16-x64.zip
*PHP-8.2=https://windows.php.net/downloads/releases/archives/php-8.2.27-nts-Win32-vs16-x64.zip *PHP-8.2=https://windows.php.net/downloads/releases/archives/php-8.2.26-nts-Win32-vs16-x64.zip
*PHP-8.1=https://windows.php.net/downloads/releases/archives/php-8.1.31-nts-Win32-vs16-x64.zip *PHP-8.1=https://windows.php.net/downloads/releases/archives/php-8.1.30-nts-Win32-vs16-x64.zip
---
# Web Servers
Apache-2.4.63=https://www.apachelounge.com/download/VS17/binaries/httpd-2.4.63-250122-win64-VS17.zip
Apache-2.4.57=https://www.apachelounge.com/download/VS16/binaries/httpd-2.4.57-win64-VS16.zip
Nginx-1.27.4=https://nginx.org/download/nginx-1.27.4.zip
--- ---
# Node.js # Node.js
# https://nodejs.org/en/download/prebuilt-binaries/current # https://nodejs.org/en/download/prebuilt-binaries/current
node-23=https://nodejs.org/dist/v23.4.0/node-v23.4.0-win-x64.zip node-23.9=https://nodejs.org/dist/v23.9.0/node-v23.9.0-win-x64.zip
node-22=https://nodejs.org/dist/v22.12.0/node-v22.12.0-win-x64.zip node-22.14=https://nodejs.org/dist/v22.14.0/node-v22.14.0-win-x64.zip
--- ---
# phpMyAdmin # phpMyAdmin
# After download, visit -> http://localhost/phpmyadmin # After download, visit -> http://localhost/phpmyadmin
phpmyadmin=https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all-languages.zip phpmyadmin-6.0snapshot=https://files.phpmyadmin.net/snapshots/phpMyAdmin-6.0+snapshot-english.tar.xz
phpmyadmin=https://files.phpmyadmin.net/phpMyAdmin/5.2.2/phpMyAdmin-5.2.2-english.zip
# DB Tools # DB Tools
DBeaver=https://dbeaver.io/files/dbeaver-ce-latest-win32.win32.x86_64.zip DBeaver=https://dbeaver.io/files/dbeaver-ce-latest-win32.win32.x86_64.zip
@@ -56,8 +64,10 @@ code=https://go.microsoft.com/fwlink/?Linkid=850641
--- ---
# Golang # Golang
# https://go.dev/dl/ # https://go.dev/dl/
golang-1.23=https://go.dev/dl/go1.23.4.windows-amd64.zip go-1.24=https://go.dev/dl/go1.24.1.windows-amd64.zip
go-1.23=https://go.dev/dl/go1.23.4.windows-amd64.zip
# Pocketbase # Pocketbase
# https://github.com/pocketbase/pocketbase/releases # https://github.com/pocketbase/pocketbase/releases
pocketbase=https://github.com/pocketbase/pocketbase/releases/download/v0.23.7/pocketbase_0.23.7_windows_amd64.zip pocketbase=https://github.com/pocketbase/pocketbase/releases/download/v0.25.9/pocketbase_0.25.9_windows_amd64.zip

View File

@@ -2,5 +2,32 @@
AutoCreateDatabase=true AutoCreateDatabase=true
Cached=true Cached=true
# Blank: an empty project
Blank=
# WordPress # WordPress
WordPress=https://wordpress.org/latest.zip WordPress=https://wordpress.org/latest.tar.gz
------------------------------------------------------
# Laravel
Laravel=composer create-project laravel/laravel %s --prefer-dist
Laravel CLI=laravel new %s
# Laravel (zip)=PATH-TO-YOUR-ZIP
------------------------------------------------------
# CakePHP
### CakePHP=composer create-project --prefer-dist cakephp/app %s
# Symfony
Symfony=composer create-project symfony/website-skeleton %s

View File

@@ -1,167 +1,105 @@
<?php <?php
if (!empty($_GET['q'])) { if (!empty($_GET['q'])) {
switch ($_GET['q']) { $query = htmlspecialchars($_GET['q'], ENT_QUOTES, 'UTF-8');
switch ($query) {
case 'info': case 'info':
phpinfo(); phpinfo();
exit; exit;
break; default:
header("HTTP/1.0 404 Not Found");
echo "Invalid query parameter.";
exit;
} }
} }
?> ?>
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
<head> <head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Laragon</title> <title>Laragon</title>
<link href="https://fonts.googleapis.com/css?family=Karla:400" rel="stylesheet" type="text/css"> <link href="https://fonts.googleapis.com/css?family=Karla:400" rel="stylesheet" type="text/css">
<link rel="shortcut icon" href="https://i.imgur.com/ky9oqct.png" type="image/png">
<style> <style>
*, html, body {
:before *, height: 100%;
:after * {
box-sizing: border-box;
}
body {
margin: 0; margin: 0;
min-height: 100vh; padding: 0;
font-weight: 100;
font-family: 'Karla', sans-serif; font-family: 'Karla', sans-serif;
font-size: 18px; font-weight: 100;
background-color: #f9f9f9;
color: #333;
} }
header, .container {
main, display: flex;
nav, justify-content: center;
aside { align-items: center;
padding: 1rem; height: 100%;
margin: auto;
max-width: 1200px;
text-align: center; text-align: center;
} }
header { .content {
display: flex; max-width: 800px;
flex-wrap: wrap; padding: 100px;
justify-content: center; background: #fff;
align-items: center; border-radius: 8px;
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
} }
.header__item { .title {
font-size: 60px;
margin: 0; margin: 0;
padding: 1rem;
} }
.header--logo { .info {
height: 8rem; margin-top: 20px;
font-size: 18px;
line-height: 1.6;
} }
h1 { .info a {
font-size: 5rem; color: #007bff;
}
main {
background-color: #f5f5f5;
}
nav {
width: 100%;
}
ul {
list-style: none;
padding: 0;
margin: auto;
}
a {
color: #37ADFF;
font-weight: 900;
text-decoration: none; text-decoration: none;
} }
a:hover { .info a:hover {
color: red; color: #0056b3;
font-weight: 900; text-decoration: underline;
transition: 300ms;
} }
main a { .opt {
color: grey; margin-top: 30px;
} }
nav a { .opt a {
display: block; font-size: 18px;
margin: 1rem 0; color: #007bff;
text-decoration: none;
} }
nav a:after { .opt a:hover {
content: '→'; color: #0056b3;
margin-left: 0.5rem; text-decoration: underline;
}
.alert {
color: red;
font-weight: 900;
}
@media (min-width: 650px) {
h1 {
font-size: 10rem;
}
} }
</style> </style>
</head> </head>
<body> <body>
<header> <div class="container">
<img class="header__item header--logo" src="https://i.imgur.com/ky9oqct.png" alt="Offline"> <div class="content">
<h1 class="header__item header--title" title="Laragon">Laragon</h1> <h1 class="title" title="Laragon">Laragon</h1>
</header> <div class="info">
<main> <p><?php echo htmlspecialchars($_SERVER['SERVER_SOFTWARE'], ENT_QUOTES, 'UTF-8'); ?></p>
<p> <p>PHP version: <?php echo htmlspecialchars(phpversion(), ENT_QUOTES, 'UTF-8'); ?>
<?php print($_SERVER['SERVER_SOFTWARE']); ?> <a title="phpinfo()" href="/?q=info">info</a>
</p> </p>
<p> <p>Document Root: <?php echo htmlspecialchars($_SERVER['DOCUMENT_ROOT'], ENT_QUOTES, 'UTF-8'); ?></p>
PHP version: <?php print PHP_VERSION; ?> <span><a title="phpinfo()" href="/?q=info">info</a></span> </div>
</p> <div class="opt">
<p> <p><a title="Getting Started" href="https://laragon.org/docs">Getting Started</a></p>
Document Root: <?php print($_SERVER['DOCUMENT_ROOT']); ?> </div>
</p> </div>
<p>
<a title="Getting Started" href="https://laragon.org/docs">Getting Started</a>
</p>
</main>
<?php
$dirList = glob('*', GLOB_ONLYDIR);
if (!empty($dirList)) :
?>
<nav>
<ul>
<?php
foreach ($dirList as $key => $value) :
$link = 'https://' . $value . '.test';
?>
<a href="<?php echo $link; ?>" target="_blank"><?php echo $link; ?></a>
<?php
endforeach;
?>
</ul>
</nav>
<?php
else :
?>
<aside>
<p class="alert">There are no directories, create your first project now</p>
<div>
<img src="https://i.imgur.com/3Sgu8XI.png" alt="Offline">
</div> </div>
</aside>
<?php
endif;
?>
</body> </body>
</html> </html>