Skip to content

Commit edc8412

Browse files
Fotios Tsakiridisclaude
andcommitted
Release v2.82.0 - Secure Project URLs
- Add session-based authentication for project preview URLs - Each project gets unique secure key for URL access - Session cookies scoped per-project (7-day expiry) - Changing key immediately invalidates all existing sessions - Localhost bypass for Playwright automation - Auto-upgrade nginx config from Basic Auth to session auth - Migration generates secure keys for existing projects Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent ea39751 commit edc8412

14 files changed

Lines changed: 486 additions & 27 deletions

File tree

CHANGELOG.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,29 @@ All notable changes to CodeHero will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [2.82.0] - 2026-01-23
9+
10+
### Added
11+
- **Secure Project URLs** - Client preview URLs now require authentication
12+
- Each project gets a unique secure key for URL access
13+
- Session cookies scoped per-project (7-day expiry)
14+
- Clients can only access their assigned project, not others
15+
- Changing the key immediately invalidates all existing sessions
16+
- Localhost (127.0.0.1) bypasses auth for Playwright automation
17+
18+
### Improved
19+
- **Project Detail UI** - New "Client URL" section
20+
- One-click copy of secure URL with key
21+
- "New Key" button to regenerate and revoke old access
22+
- Clear explanation that each project has isolated access
23+
24+
### Changed
25+
- Replaced HTTP Basic Auth with session-based authentication
26+
- Nginx config updated for auth_request validation
27+
- Migration auto-generates secure keys for existing projects
28+
29+
---
30+
831
## [2.81.0] - 2026-01-23
932

1033
### Added

INSTALL.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
```bash
1414
cd /root
15-
unzip codehero-2.81.0.zip
15+
unzip codehero-2.82.0.zip
1616
cd codehero
1717
```
1818

@@ -129,8 +129,8 @@ sudo systemctl restart codehero-web codehero-daemon
129129
```bash
130130
# Download and extract new version
131131
cd /root
132-
wget https://github.com/fotsakir/codehero/releases/latest/download/codehero-2.81.0.zip
133-
unzip codehero-2.81.0.zip
132+
wget https://github.com/fotsakir/codehero/releases/latest/download/codehero-2.82.0.zip
133+
unzip codehero-2.82.0.zip
134134
cd codehero
135135

136136
# Preview what will change (recommended)

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
<p align="center">
1313
<a href="LICENSE"><img src="https://img.shields.io/badge/License-Dual-blue.svg" alt="License"></a>
14-
<a href="CHANGELOG.md"><img src="https://img.shields.io/badge/version-2.81.0-green.svg" alt="Version"></a>
14+
<a href="CHANGELOG.md"><img src="https://img.shields.io/badge/version-2.82.0-green.svg" alt="Version"></a>
1515
<img src="https://img.shields.io/badge/Ubuntu-22.04%20|%2024.04-orange.svg" alt="Ubuntu">
1616
<a href="https://anthropic.com"><img src="https://img.shields.io/badge/Powered%20by-Claude%20AI-blueviolet.svg" alt="Claude AI"></a>
1717
<a href="https://github.com/fotsakir/codehero/stargazers"><img src="https://img.shields.io/github/stars/fotsakir/codehero?style=social" alt="Stars"></a>
@@ -378,8 +378,8 @@ apt-get update && apt-get install -y unzip wget net-tools
378378

379379
# Download and extract
380380
cd /root
381-
wget https://github.com/fotsakir/codehero/releases/latest/download/codehero-2.81.0.zip
382-
unzip codehero-2.81.0.zip
381+
wget https://github.com/fotsakir/codehero/releases/latest/download/codehero-2.82.0.zip
382+
unzip codehero-2.82.0.zip
383383
cd codehero
384384

385385
# Run setup
@@ -405,7 +405,7 @@ The installer automatically sets up:
405405
```bash
406406
# Download new version
407407
cd /root
408-
unzip codehero-2.81.0.zip
408+
unzip codehero-2.82.0.zip
409409
cd codehero
410410

411411
# Preview changes (recommended)

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2.81.0
1+
2.82.0
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
-- Migration: Add secure_key column for project URL authentication
2+
-- Version: 2.82.0
3+
4+
-- Add secure_key column if not exists
5+
SET @dbname = DATABASE();
6+
SET @tablename = 'projects';
7+
SET @columnname = 'secure_key';
8+
SET @preparedStatement = (SELECT IF(
9+
(SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS
10+
WHERE TABLE_SCHEMA = @dbname AND TABLE_NAME = @tablename AND COLUMN_NAME = @columnname) > 0,
11+
'SELECT 1',
12+
'ALTER TABLE projects ADD COLUMN secure_key VARCHAR(32) NULL AFTER preview_url'
13+
));
14+
PREPARE alterIfNotExists FROM @preparedStatement;
15+
EXECUTE alterIfNotExists;
16+
DEALLOCATE PREPARE alterIfNotExists;
17+
18+
-- Generate secure keys for existing projects that don't have one
19+
UPDATE projects
20+
SET secure_key = SUBSTRING(SHA2(CONCAT(UUID(), RAND(), id), 256), 1, 32)
21+
WHERE secure_key IS NULL;

database/schema.sql

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,7 @@ CREATE TABLE `projects` (
234234
`tech_stack` varchar(255) DEFAULT NULL,
235235
`web_path` varchar(500) DEFAULT NULL,
236236
`preview_url` varchar(500) DEFAULT NULL,
237+
`secure_key` varchar(32) DEFAULT NULL COMMENT 'Secure key for project URL authentication',
237238
`app_path` varchar(500) DEFAULT NULL,
238239
`reference_path` varchar(500) DEFAULT NULL COMMENT 'Path to imported reference project (for template mode)',
239240
`context` text,

docs/USER_GUIDE.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -557,8 +557,8 @@ Fix:
557557
558558
```bash
559559
cd /root
560-
wget https://github.com/fotsakir/codehero/releases/latest/download/codehero-2.81.0.zip
561-
unzip codehero-2.81.0.zip
560+
wget https://github.com/fotsakir/codehero/releases/latest/download/codehero-2.82.0.zip
561+
unzip codehero-2.82.0.zip
562562
cd codehero
563563
sudo ./upgrade.sh
564564
```

docs/VM_INSTALLATION.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -345,10 +345,10 @@ sudo su
345345
cd /root
346346

347347
# Download the latest release
348-
wget https://github.com/fotsakir/codehero/releases/latest/download/codehero-2.81.0.zip
348+
wget https://github.com/fotsakir/codehero/releases/latest/download/codehero-2.82.0.zip
349349

350350
# Extract
351-
unzip codehero-2.81.0.zip
351+
unzip codehero-2.82.0.zip
352352

353353
# Enter the folder
354354
cd codehero

docs/WSL_INSTALL.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,10 +131,10 @@ apt-get install -y unzip wget curl
131131

132132
# Download latest release
133133
cd /root
134-
wget https://github.com/fotsakir/codehero/releases/latest/download/codehero-2.81.0.zip
134+
wget https://github.com/fotsakir/codehero/releases/latest/download/codehero-2.82.0.zip
135135

136136
# Extract and install
137-
unzip codehero-2.81.0.zip
137+
unzip codehero-2.82.0.zip
138138
cd codehero
139139
chmod +x setup.sh
140140
./setup.sh

docs/index.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
"description": "The Developer That Never Rests. Self-hosted autonomous AI coding agent. Give it tasks. Walk away. Wake up to working code.",
4242
"url": "https://fotsakir.github.io/codehero/",
4343
"downloadUrl": "https://github.com/fotsakir/codehero/releases/latest",
44-
"softwareVersion": "2.81.0",
44+
"softwareVersion": "2.82.0",
4545
"applicationCategory": "DeveloperApplication",
4646
"operatingSystem": "Ubuntu 22.04, Ubuntu 24.04",
4747
"offers": {
@@ -1330,9 +1330,9 @@ <h1>CodeHero</h1>
13301330
Install on <strong>Ubuntu 22.04/24.04</strong> VM (VirtualBox, VMware, Hyper-V, or cloud VPS).
13311331
</p>
13321332
<div style="position: relative; background: rgba(0,0,0,0.3); padding: 0.8rem 3rem 0.8rem 0.8rem; border-radius: 6px; font-family: 'JetBrains Mono', monospace; font-size: 0.7rem; overflow-x: auto;">
1333-
<button onclick="copyCode(this, 'wget https://github.com/fotsakir/codehero/releases/latest/download/codehero-2.81.0.zip\nunzip codehero-*.zip && cd codehero && ./setup.sh')" style="position: absolute; top: 6px; right: 6px; background: rgba(255,255,255,0.1); border: none; color: var(--text-muted); padding: 4px 8px; border-radius: 4px; cursor: pointer; font-size: 0.7rem; transition: all 0.2s;" onmouseover="this.style.background='rgba(255,255,255,0.2)'" onmouseout="this.style.background='rgba(255,255,255,0.1)'">📋</button>
1333+
<button onclick="copyCode(this, 'wget https://github.com/fotsakir/codehero/releases/latest/download/codehero-2.82.0.zip\nunzip codehero-*.zip && cd codehero && ./setup.sh')" style="position: absolute; top: 6px; right: 6px; background: rgba(255,255,255,0.1); border: none; color: var(--text-muted); padding: 4px 8px; border-radius: 4px; cursor: pointer; font-size: 0.7rem; transition: all 0.2s;" onmouseover="this.style.background='rgba(255,255,255,0.2)'" onmouseout="this.style.background='rgba(255,255,255,0.1)'">📋</button>
13341334
<span style="color: var(--text-muted);"># On Ubuntu VM (as root)</span><br>
1335-
<span style="color: var(--accent-cyan);">wget https://github.com/fotsakir/codehero/releases/latest/download/codehero-2.81.0.zip</span><br>
1335+
<span style="color: var(--accent-cyan);">wget https://github.com/fotsakir/codehero/releases/latest/download/codehero-2.82.0.zip</span><br>
13361336
<span style="color: var(--accent-cyan);">unzip codehero-*.zip && cd codehero && ./setup.sh</span>
13371337
</div>
13381338
<p style="margin-top: 0.8rem; font-size: 0.8rem;">

0 commit comments

Comments
 (0)