create-authenik8-app 2.0.1 → 2.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +203 -10
- package/dist/bin/index.js +221 -36
- package/dist/bin/index.js.map +1 -1
- package/package.json +2 -2
- package/templates/express-auth/ecosystem.config.ts +16 -0
- package/templates/express-auth/package.json +4 -1
- package/templates/express-auth/src/.env +9 -0
- package/templates/express-auth/src/app.ts +14 -0
- package/templates/express-auth/src/controllers/auth.controller.ts +43 -0
- package/templates/express-auth/src/routes/auth.routes.ts +13 -0
- package/templates/express-auth/src/routes/protected.routes.ts +11 -0
- package/templates/express-auth/src/server.ts +23 -64
- package/templates/express-auth/src/services/auth.services.ts +28 -0
- package/templates/express-auth+/ecosystem.config.ts +16 -0
- package/templates/express-auth+/package.json +27 -0
- package/templates/express-auth+/src/.env +9 -0
- package/templates/express-auth+/src/auth/auth.ts +37 -0
- package/templates/express-auth+/src/auth/oauth.routes.ts +43 -0
- package/templates/express-auth+/src/auth/password.route.ts +43 -0
- package/templates/express-auth+/src/auth/protected.routes.ts +11 -0
- package/templates/express-auth+/src/prisma/client.ts +15 -0
- package/templates/express-auth+/src/server.ts +38 -0
- package/templates/express-auth+/src/utils/hash.ts +12 -0
- package/templates/express-auth+/tsconfig.json +16 -0
- package/templates/express-base/app.ts +15 -0
- package/templates/express-base/controllers/base.controller.ts +32 -0
- package/templates/express-base/ecosystem.config.ts +16 -0
- package/templates/express-base/package.json +4 -1
- package/templates/express-base/routes/base.routes.ts +16 -0
- package/templates/express-base/src/server.ts +21 -41
package/README.md
CHANGED
|
@@ -1,9 +1,29 @@
|
|
|
1
|
+
<<<<<<< HEAD
|
|
2
|
+
<<<<<<< HEAD
|
|
1
3
|
|
|
4
|
+
|
|
5
|
+
=======
|
|
6
|
+
Good catch — then your README should reflect that. Don’t undersell what you already built.
|
|
7
|
+
|
|
8
|
+
Let’s fix it properly.
|
|
9
|
+
>>>>>>> 5471da4 (Update file README.md)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
<<<<<<< HEAD
|
|
15
|
+
=======
|
|
16
|
+
✅ Updated npm README (with RBAC included)
|
|
17
|
+
|
|
18
|
+
Replace your README with this version:
|
|
19
|
+
|
|
20
|
+
>>>>>>> 5471da4 (Update file README.md)
|
|
2
21
|
# create-authenik8-app
|
|
3
22
|
|
|
4
23
|
<p align="center">
|
|
5
24
|
<b>Scaffold secure Express authentication APIs in seconds</b>
|
|
6
25
|
</p>
|
|
26
|
+
<<<<<<< HEAD
|
|
7
27
|
|
|
8
28
|
<p align="center">
|
|
9
29
|
JWT • Refresh Tokens • Redis • RBAC • TypeScript • Express
|
|
@@ -11,7 +31,7 @@
|
|
|
11
31
|
|
|
12
32
|
---
|
|
13
33
|
|
|
14
|
-
##
|
|
34
|
+
## 📦 Usage
|
|
15
35
|
|
|
16
36
|
Create a new project:
|
|
17
37
|
|
|
@@ -23,10 +43,183 @@ Then:
|
|
|
23
43
|
cd my-app
|
|
24
44
|
npm install
|
|
25
45
|
npm run dev
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## What you get instantly
|
|
51
|
+
|
|
52
|
+
A fully working Express authentication starter with:
|
|
53
|
+
|
|
54
|
+
JWT authentication (access + refresh tokens)
|
|
55
|
+
|
|
56
|
+
Secure refresh token rotation
|
|
57
|
+
|
|
58
|
+
Redis-based token storage
|
|
59
|
+
|
|
60
|
+
Role-Based Access Control (RBAC)
|
|
61
|
+
|
|
62
|
+
TypeScript setup
|
|
63
|
+
|
|
64
|
+
Express server preconfigured
|
|
65
|
+
|
|
66
|
+
Clean scalable folder structure
|
|
67
|
+
|
|
68
|
+
.env file generated automatically
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Why Authenik8?
|
|
75
|
+
|
|
76
|
+
Authentication systems usually require:
|
|
77
|
+
|
|
78
|
+
manual JWT setup
|
|
79
|
+
|
|
80
|
+
refresh token handling
|
|
81
|
+
|
|
82
|
+
Redis/session configuration
|
|
83
|
+
|
|
84
|
+
access control logic
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
Authenik8 provides all of this out of the box so you can start building your API immediately.
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
## Requirements
|
|
93
|
+
|
|
94
|
+
Node.js 18+
|
|
95
|
+
|
|
96
|
+
Redis (required for refresh tokens)
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## Redis Setup
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Local
|
|
106
|
+
|
|
107
|
+
redis-server
|
|
108
|
+
|
|
109
|
+
Docker
|
|
110
|
+
|
|
111
|
+
docker run -p 6379:6379 redis
|
|
26
112
|
|
|
27
113
|
```
|
|
28
114
|
---
|
|
29
115
|
|
|
116
|
+
## Environment Variables
|
|
117
|
+
|
|
118
|
+
Generated automatically:
|
|
119
|
+
```
|
|
120
|
+
JWT_SECRET=your-secret
|
|
121
|
+
REFRESH_SECRET=your-refresh-secret
|
|
122
|
+
|
|
123
|
+
REDIS_HOST=127.0.0.1
|
|
124
|
+
REDIS_PORT=6379
|
|
125
|
+
|
|
126
|
+
```
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## RBAC Example
|
|
130
|
+
```
|
|
131
|
+
Example of a protected route:
|
|
132
|
+
|
|
133
|
+
app.get("/admin", auth.requireAdmin, (req, res) => {
|
|
134
|
+
res.json({ message: "Admin only route" });
|
|
135
|
+
});
|
|
136
|
+
|
|
137
|
+
```
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
📦 Powered by
|
|
141
|
+
|
|
142
|
+
authenik8-core
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## Project Structure
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
my-app/
|
|
152
|
+
├── src/
|
|
153
|
+
│ |
|
|
154
|
+
│ ├
|
|
155
|
+
│ └── server.ts
|
|
156
|
+
├── .env
|
|
157
|
+
├── package.json
|
|
158
|
+
└── tsconfig.json
|
|
159
|
+
|
|
160
|
+
```
|
|
161
|
+
---
|
|
162
|
+
|
|
163
|
+
## Notes
|
|
164
|
+
|
|
165
|
+
Redis is required for refresh token handling
|
|
166
|
+
|
|
167
|
+
This CLI generates a starter project, not a full framework
|
|
168
|
+
|
|
169
|
+
RBAC is included via middleware (e.g. requireAdmin)
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## Roadmap
|
|
176
|
+
|
|
177
|
+
OAuth providers (Google, GitHub)
|
|
178
|
+
|
|
179
|
+
Advanced RBAC (custom roles/permissions)
|
|
180
|
+
|
|
181
|
+
Docker templates
|
|
182
|
+
|
|
183
|
+
Admin dashboard
|
|
184
|
+
|
|
185
|
+
Production presets
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
# Create-authenik8-app
|
|
191
|
+
=======
|
|
192
|
+
# create-authenik8-app
|
|
193
|
+
>>>>>>> 01efb21 (Update file README.md)
|
|
194
|
+
|
|
195
|
+
<p align="center">
|
|
196
|
+
<b>Scaffold secure Express authentication APIs in seconds</b>
|
|
197
|
+
</p>
|
|
198
|
+
=======
|
|
199
|
+
>>>>>>> 5471da4 (Update file README.md)
|
|
200
|
+
|
|
201
|
+
<p align="center">
|
|
202
|
+
JWT • Refresh Tokens • Redis • RBAC • TypeScript • Express
|
|
203
|
+
</p>
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
## Usage
|
|
208
|
+
|
|
209
|
+
Create a new project:
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
npx create-authenik8-app my-app
|
|
213
|
+
|
|
214
|
+
Then:
|
|
215
|
+
|
|
216
|
+
cd my-app
|
|
217
|
+
npm install
|
|
218
|
+
npm run dev
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
30
223
|
## What you get instantly
|
|
31
224
|
|
|
32
225
|
A fully working Express authentication starter with:
|
|
@@ -51,7 +244,7 @@ Clean scalable folder structure
|
|
|
51
244
|
|
|
52
245
|
---
|
|
53
246
|
|
|
54
|
-
|
|
247
|
+
🧠 Why Authenik8?
|
|
55
248
|
|
|
56
249
|
Authentication systems usually require:
|
|
57
250
|
|
|
@@ -69,7 +262,7 @@ Authenik8 provides all of this out of the box so you can start building your API
|
|
|
69
262
|
|
|
70
263
|
---
|
|
71
264
|
|
|
72
|
-
|
|
265
|
+
Requirements
|
|
73
266
|
|
|
74
267
|
Node.js 18+
|
|
75
268
|
|
|
@@ -79,7 +272,7 @@ Redis (required for refresh tokens)
|
|
|
79
272
|
|
|
80
273
|
---
|
|
81
274
|
|
|
82
|
-
|
|
275
|
+
Redis Setup
|
|
83
276
|
```
|
|
84
277
|
|
|
85
278
|
Local
|
|
@@ -116,7 +309,7 @@ app.get("/admin", auth.requireAdmin, (req, res) => {
|
|
|
116
309
|
|
|
117
310
|
---
|
|
118
311
|
|
|
119
|
-
|
|
312
|
+
📦 Powered by
|
|
120
313
|
|
|
121
314
|
authenik8-core
|
|
122
315
|
|
|
@@ -124,8 +317,8 @@ authenik8-core
|
|
|
124
317
|
|
|
125
318
|
---
|
|
126
319
|
|
|
127
|
-
|
|
128
|
-
|
|
320
|
+
📁 Project Structure
|
|
321
|
+
|
|
129
322
|
my-app/
|
|
130
323
|
├── src/
|
|
131
324
|
│ ├
|
|
@@ -135,10 +328,10 @@ my-app/
|
|
|
135
328
|
├── package.json
|
|
136
329
|
└── tsconfig.json
|
|
137
330
|
|
|
138
|
-
|
|
331
|
+
|
|
139
332
|
---
|
|
140
333
|
|
|
141
|
-
|
|
334
|
+
📌 Notes
|
|
142
335
|
|
|
143
336
|
Redis is required for refresh token handling
|
|
144
337
|
|
|
@@ -150,7 +343,7 @@ RBAC is included via middleware (e.g. requireAdmin)
|
|
|
150
343
|
|
|
151
344
|
---
|
|
152
345
|
|
|
153
|
-
|
|
346
|
+
🧱 Roadmap
|
|
154
347
|
|
|
155
348
|
OAuth providers (Google, GitHub)
|
|
156
349
|
|
package/dist/bin/index.js
CHANGED
|
@@ -14,10 +14,106 @@ if (!projectName) {
|
|
|
14
14
|
console.log(chalk.red("❌ Please provide a project name"));
|
|
15
15
|
process.exit(1);
|
|
16
16
|
}
|
|
17
|
+
const isProduction = process.argv.includes("--production-ready");
|
|
17
18
|
const targetDir = path.join(process.cwd(), projectName);
|
|
18
19
|
let projectCreated = false;
|
|
20
|
+
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
|
|
21
|
+
const cleanLogo = `
|
|
22
|
+
|
|
23
|
+
█████╗ █████╗
|
|
24
|
+
██╔══██╗ ██╔══██╗
|
|
25
|
+
███████║ ╚█████╔╝
|
|
26
|
+
██╔══██║ ██╔══██╗
|
|
27
|
+
██║ ██║ ╚█████╔╝
|
|
28
|
+
╚═╝ ╚═╝ ╚════╝
|
|
29
|
+
|
|
30
|
+
A8
|
|
31
|
+
Authenik8 CLI
|
|
32
|
+
Build Faster
|
|
33
|
+
More , Secure
|
|
34
|
+
`;
|
|
35
|
+
const glitchFrames = [
|
|
36
|
+
`
|
|
37
|
+
█████╗ █████╗
|
|
38
|
+
██╔══██╗ ██▒▒▒▒██
|
|
39
|
+
███████║ ╚█████╔╝
|
|
40
|
+
██╔══██║ ██▒▒▒▒██
|
|
41
|
+
██║ ██║ ╚█████╔╝
|
|
42
|
+
╚═╝ ╚═╝ ╚════╝
|
|
43
|
+
|
|
44
|
+
A8
|
|
45
|
+
Authenik8 CLI
|
|
46
|
+
|
|
47
|
+
More
|
|
48
|
+
`,
|
|
49
|
+
`
|
|
50
|
+
██▓▓██╗ ██▓▓██╗
|
|
51
|
+
██▒▒██╔╝ ██▒▒██╔╝
|
|
52
|
+
██▒▒▒▒██ ╚█████╔╝
|
|
53
|
+
██▓▓██╔╝ ██▒▒██╗
|
|
54
|
+
██▒▒██║ ╚█████╔╝
|
|
55
|
+
╚═════╝ ╚════╝
|
|
56
|
+
|
|
57
|
+
A8
|
|
58
|
+
Authenik8 CLI
|
|
59
|
+
Faster
|
|
60
|
+
`,
|
|
61
|
+
`
|
|
62
|
+
██▒▒██╗ ██▒▒██╗
|
|
63
|
+
██▓▓██╔╝ ██▓▓██╔╝
|
|
64
|
+
██▒▒▒▒██ ╚█████╔╝
|
|
65
|
+
██▓▓██╔╝ ██▓▓██╗
|
|
66
|
+
██▒▒██║ ╚█████╔╝
|
|
67
|
+
╚═════╝ ╚════╝
|
|
68
|
+
|
|
69
|
+
A8
|
|
70
|
+
Authenik8 CLI
|
|
71
|
+
Build
|
|
72
|
+
`,
|
|
73
|
+
`
|
|
74
|
+
██▓▓██╗ ██▓▓██╗
|
|
75
|
+
██▒▒██╔╝ ██▒▒██╔╝
|
|
76
|
+
██▒▒▒▒██ ╚█████╔╝
|
|
77
|
+
██▓▓██╔╝ ██▒▒██╗
|
|
78
|
+
██▒▒██║ ╚█████╔╝
|
|
79
|
+
╚═════╝ ╚════╝
|
|
80
|
+
|
|
81
|
+
A8
|
|
82
|
+
Authenik8 CLI
|
|
83
|
+
|
|
84
|
+
`
|
|
85
|
+
];
|
|
86
|
+
async function showBootLogo() {
|
|
87
|
+
console.clear();
|
|
88
|
+
const boot = ora("Initializing Authenik8 engine...").start();
|
|
89
|
+
// Phase 1: clean → unstable
|
|
90
|
+
console.clear();
|
|
91
|
+
console.log(chalk.cyan(cleanLogo));
|
|
92
|
+
await sleep(200);
|
|
93
|
+
// Phase 2: glitch burst (irregular feel)
|
|
94
|
+
for (let i = 0; i < 5; i++) {
|
|
95
|
+
console.clear();
|
|
96
|
+
const frame = glitchFrames[Math.floor(Math.random() * glitchFrames.length)];
|
|
97
|
+
console.log(chalk.cyan(frame));
|
|
98
|
+
await sleep(120 + Math.random() * 120);
|
|
99
|
+
}
|
|
100
|
+
// Phase 3: stabilization flicker
|
|
101
|
+
for (let i = 0; i < 2; i++) {
|
|
102
|
+
console.clear();
|
|
103
|
+
console.log(chalk.cyan(cleanLogo));
|
|
104
|
+
await sleep(180);
|
|
105
|
+
console.clear();
|
|
106
|
+
console.log(chalk.gray(cleanLogo));
|
|
107
|
+
await sleep(120);
|
|
108
|
+
}
|
|
109
|
+
// Final render
|
|
110
|
+
console.clear();
|
|
111
|
+
console.log(chalk.cyan.bold(cleanLogo));
|
|
112
|
+
await sleep(800);
|
|
113
|
+
boot.succeed("Engine ready");
|
|
114
|
+
}
|
|
19
115
|
async function main() {
|
|
20
|
-
|
|
116
|
+
await showBootLogo();
|
|
21
117
|
if (process.argv.includes("--help")) {
|
|
22
118
|
console.log(`
|
|
23
119
|
Authenik8 CLI
|
|
@@ -26,14 +122,15 @@ Usage:
|
|
|
26
122
|
create-authenik8-app <project-name>
|
|
27
123
|
|
|
28
124
|
Options:
|
|
29
|
-
--help
|
|
30
|
-
|
|
125
|
+
--help Show this help message
|
|
126
|
+
--production-ready production mode
|
|
31
127
|
Features:
|
|
32
128
|
- Express backend (default)
|
|
33
129
|
- Optional Prisma ORM
|
|
34
130
|
- PostgreSQL (production)
|
|
35
131
|
- SQLite (quick start)
|
|
36
132
|
- Optional Git initialization
|
|
133
|
+
- Optional OAuth
|
|
37
134
|
|
|
38
135
|
Examples:
|
|
39
136
|
create-authenik8-app my-app
|
|
@@ -42,18 +139,23 @@ Examples:
|
|
|
42
139
|
}
|
|
43
140
|
console.log(chalk.gray(`
|
|
44
141
|
Available options:
|
|
142
|
+
Authentication setup:
|
|
143
|
+
• base (JWT only)
|
|
144
|
+
• auth (JWT + Password/Email auth)
|
|
145
|
+
• auth-oauth(JWT+ Password/Email + oauth)
|
|
45
146
|
|
|
46
147
|
Frameworks:
|
|
47
|
-
|
|
48
|
-
|
|
148
|
+
• Express
|
|
149
|
+
• Fastify(coming soon)
|
|
49
150
|
|
|
50
151
|
Database (if Prisma enabled):
|
|
51
|
-
|
|
52
|
-
|
|
152
|
+
• PostgreSQL
|
|
153
|
+
• SQLite (quick start)
|
|
53
154
|
|
|
54
155
|
Features:
|
|
55
|
-
|
|
56
|
-
|
|
156
|
+
• Prisma ORM (optional)
|
|
157
|
+
• Git initialization (optional)
|
|
158
|
+
• OAuth + Auth
|
|
57
159
|
`));
|
|
58
160
|
// 🔥 PROMPTS
|
|
59
161
|
const answers = await inquirer.prompt([
|
|
@@ -84,14 +186,16 @@ Available options:
|
|
|
84
186
|
name: "useGit",
|
|
85
187
|
message: "Initialize git?",
|
|
86
188
|
default: true,
|
|
87
|
-
},
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
189
|
+
}, {
|
|
190
|
+
type: "list",
|
|
191
|
+
name: "authMode",
|
|
192
|
+
message: "Choose authentication setup:",
|
|
193
|
+
choices: [
|
|
194
|
+
{ name: "JWT only (no auth routes)", value: "base" },
|
|
195
|
+
{ name: "Email + Password Auth", value: "auth" },
|
|
196
|
+
{ name: "Full Auth (Password + OAuth)", value: "auth-oauth" },
|
|
197
|
+
],
|
|
198
|
+
}
|
|
95
199
|
]);
|
|
96
200
|
// 🚫 Prevent overwrite
|
|
97
201
|
if (fs.existsSync(targetDir)) {
|
|
@@ -101,9 +205,12 @@ Available options:
|
|
|
101
205
|
console.log(chalk.cyan("\n⚙️ Setting things up...\n"));
|
|
102
206
|
const templateRoot = path.resolve(__dirname, "../../templates");
|
|
103
207
|
let templateName = "express-base";
|
|
104
|
-
if (answers.
|
|
208
|
+
if (answers.authMode === "auth") {
|
|
105
209
|
templateName = "express-auth";
|
|
106
210
|
}
|
|
211
|
+
if (answers.authMode === "auth-oauth") {
|
|
212
|
+
templateName = "express-auth+";
|
|
213
|
+
}
|
|
107
214
|
const templatePath = path.join(templateRoot, templateName);
|
|
108
215
|
// 📁 Create project (SPINNER)
|
|
109
216
|
const createSpinner = ora("Creating project structure...").start();
|
|
@@ -179,18 +286,33 @@ Available options:
|
|
|
179
286
|
console.error(err);
|
|
180
287
|
}
|
|
181
288
|
}
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
289
|
+
if (isProduction) {
|
|
290
|
+
const pm2Spinner = ora("Setting up production mode (PM2)...").start();
|
|
291
|
+
try {
|
|
292
|
+
execSync("npm install pm2", {
|
|
293
|
+
cwd: targetDir,
|
|
294
|
+
stdio: "ignore",
|
|
295
|
+
});
|
|
296
|
+
pm2Spinner.succeed("PM2 installed (production-ready)");
|
|
297
|
+
}
|
|
298
|
+
catch (err) {
|
|
299
|
+
pm2Spinner.fail("Failed to install PM2");
|
|
300
|
+
}
|
|
189
301
|
}
|
|
190
|
-
|
|
191
|
-
authSpinner
|
|
192
|
-
|
|
193
|
-
|
|
302
|
+
if (answers.authMode !== "base") {
|
|
303
|
+
const authSpinner = ora("Installing password auth...").start();
|
|
304
|
+
try {
|
|
305
|
+
execSync("npm install argon2", {
|
|
306
|
+
cwd: targetDir,
|
|
307
|
+
stdio: "ignore",
|
|
308
|
+
});
|
|
309
|
+
authSpinner.succeed("Password auth ready (argon2)");
|
|
310
|
+
}
|
|
311
|
+
catch (err) {
|
|
312
|
+
authSpinner.fail("Failed to install password auth");
|
|
313
|
+
console.error(err);
|
|
314
|
+
process.exit(1);
|
|
315
|
+
}
|
|
194
316
|
}
|
|
195
317
|
}
|
|
196
318
|
if (answers.useGit) {
|
|
@@ -207,20 +329,83 @@ Available options:
|
|
|
207
329
|
}
|
|
208
330
|
}
|
|
209
331
|
console.log(chalk.green.bold("\n🎉 Authenik8 app created successfully!\n"));
|
|
332
|
+
if (isProduction) {
|
|
333
|
+
fs.appendFileSync(path.join(targetDir, "README.md"), `
|
|
334
|
+
|
|
335
|
+
## 🚀 Production Mode
|
|
336
|
+
|
|
337
|
+
This project is configured for production using PM2.
|
|
338
|
+
|
|
339
|
+
### Start app in cluster mode:
|
|
340
|
+
npm run pm2:start
|
|
341
|
+
|
|
342
|
+
### View logs:
|
|
343
|
+
npm run pm2:logs
|
|
344
|
+
|
|
345
|
+
### Stop app:
|
|
346
|
+
npm run pm2:stop
|
|
347
|
+
|
|
348
|
+
`);
|
|
349
|
+
}
|
|
210
350
|
console.log(chalk.white(`
|
|
211
351
|
Next steps:
|
|
212
352
|
|
|
213
353
|
cd ${projectName}
|
|
214
|
-
|
|
354
|
+
redis-server --daemonize yes
|
|
215
355
|
npm run dev
|
|
216
356
|
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
357
|
+
Auth Features:
|
|
358
|
+
${answers.authMode === "base"
|
|
359
|
+
? "✓ JWT only"
|
|
360
|
+
: answers.authMode === "auth"
|
|
361
|
+
? "✓ Email + Password"
|
|
362
|
+
: "✓ Password + OAuth (Google/GitHub)"}
|
|
363
|
+
|
|
364
|
+
|
|
365
|
+
🛠 Stack:
|
|
366
|
+
✔ Express
|
|
367
|
+
✔ ${answers.usePrisma ? (answers.database.includes("postgresql") ? "PostgreSQL" : "SQLite") : "No database"}
|
|
368
|
+
✔ ${answers.usePrisma ? "Prisma ORM" : "No ORM"}
|
|
369
|
+
|
|
370
|
+
📡 Endpoints:
|
|
371
|
+
${answers.authMode === "base"
|
|
372
|
+
? `
|
|
373
|
+
GET /public
|
|
374
|
+
GET /guest
|
|
375
|
+
GET /protected
|
|
376
|
+
POST /refresh
|
|
377
|
+
`
|
|
378
|
+
: answers.authMode === "auth"
|
|
379
|
+
? `
|
|
380
|
+
POST /auth/register
|
|
381
|
+
POST /auth/login
|
|
382
|
+
POST /auth/refresh
|
|
383
|
+
GET /protected
|
|
384
|
+
`
|
|
385
|
+
: `
|
|
386
|
+
POST /auth/register
|
|
387
|
+
POST /auth/login
|
|
388
|
+
POST /auth/refresh
|
|
389
|
+
GET /auth/google
|
|
390
|
+
GET /auth/github
|
|
391
|
+
GET /protected
|
|
392
|
+
`}
|
|
393
|
+
|
|
394
|
+
|
|
395
|
+
🔥 You're ready to build.
|
|
396
|
+
`));
|
|
397
|
+
if (isProduction) {
|
|
398
|
+
console.log(`
|
|
399
|
+
🚀 Production Ready Enabled:
|
|
400
|
+
|
|
401
|
+
✔ PM2 installed
|
|
402
|
+
✔ Cluster mode enabled
|
|
403
|
+
✔ Memory auto-restart (300MB)
|
|
404
|
+
|
|
405
|
+
Run:
|
|
406
|
+
npm run pm2:start
|
|
223
407
|
`);
|
|
408
|
+
}
|
|
224
409
|
}
|
|
225
410
|
process.on("SIGINT", async () => {
|
|
226
411
|
console.log("\n👋 Authenik8 setup cancelled.");
|
package/dist/bin/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bin/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAGpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAG3C,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAEpC,IAAI,CAAC,WAAW,EAAE,CAAC;IACjB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC,CAAC;IAC1D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bin/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-authenik8-app",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.3",
|
|
4
4
|
"description":"Create production-ready backend APIs in seconds. Authenik8 scaffolds Express + Prisma projects with JWT authentication, database setup (PostgreSQL or SQLite), and scalable architecture out of the box.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"create-authenik8-app": "dist/bin/index.js"
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"author":"Karabo Seeisa",
|
|
30
30
|
"type": "module",
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"authenik8-core": "^0.
|
|
32
|
+
"authenik8-core": "^1.0.3",
|
|
33
33
|
"chalk": "^5.6.2",
|
|
34
34
|
"fs-extra": "^11.3.4",
|
|
35
35
|
"inquirer": "^13.3.2",
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
apps: [
|
|
3
|
+
{
|
|
4
|
+
name: "authenik8-app",
|
|
5
|
+
script: "src/server.ts",
|
|
6
|
+
instances: "max",
|
|
7
|
+
interpreter:"node",
|
|
8
|
+
exec_mode: "cluster",
|
|
9
|
+
watch: false,
|
|
10
|
+
max_memory_restart: "300M",
|
|
11
|
+
env: {
|
|
12
|
+
NODE_ENV: "production",
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
],
|
|
16
|
+
};
|