@seip/blue-bird 1.1.3 → 1.1.5

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.
@@ -1,69 +1,69 @@
1
- services:
2
- app:
3
- build:
4
- context: .
5
- dockerfile: docker/Dockerfile
6
- container_name: ${TITLE:-bluebird}-app
7
- restart: unless-stopped
8
- expose:
9
- - "3000"
10
- volumes:
11
- - .:/app
12
- - /app/node_modules
13
- - ./database:/app/database
14
- env_file:
15
- - .env
16
- environment:
17
- - NODE_ENV=production
18
- - DEBUG=false
19
- - DB_TYPE=sqlite
20
- - DB_FILE=${DB_FILE:-database/blue_bird.db}
21
- - DATABASE_URL=${DATABASE_URL:-sqlite:database/blue_bird.db}
22
- - REDIS_HOST=redis
23
- - REDIS_PORT=6379
24
- - PORT=3000
25
- depends_on:
26
- redis:
27
- condition: service_healthy
28
- networks:
29
- - bluebird_net
30
- profiles:
31
- - prod
32
-
33
- nginx:
34
- image: nginx:1.27-alpine
35
- container_name: ${TITLE:-bluebird}-nginx
36
- restart: unless-stopped
37
- ports:
38
- - "${PORT:-3000}:80"
39
- volumes:
40
- - .:/app:ro
41
- - ./docker/nginx.conf:/etc/nginx/nginx.conf:ro
42
- networks:
43
- - bluebird_net
44
- profiles:
45
- - prod
46
-
47
- redis:
48
- image: redis:7-alpine
49
- container_name: ${TITLE:-bluebird}-redis
50
- restart: unless-stopped
51
- ports:
52
- - "${REDIS_PORT:-6379}:6379"
53
- volumes:
54
- - redis_data:/data
55
- networks:
56
- - bluebird_net
57
- healthcheck:
58
- test: ["CMD", "redis-cli", "ping"]
59
- interval: 5s
60
- timeout: 3s
61
- retries: 5
62
-
63
- volumes:
64
- redis_data:
65
-
66
- networks:
67
- bluebird_net:
68
- name: ${TITLE:-bluebird}_network
69
- driver: bridge
1
+ services:
2
+ app:
3
+ build:
4
+ context: .
5
+ dockerfile: docker/Dockerfile
6
+ container_name: ${TITLE:-bluebird}-app
7
+ restart: unless-stopped
8
+ expose:
9
+ - "3000"
10
+ volumes:
11
+ - .:/app
12
+ - /app/node_modules
13
+ - ./database:/app/database
14
+ env_file:
15
+ - .env
16
+ environment:
17
+ - NODE_ENV=production
18
+ - DEBUG=false
19
+ - DB_TYPE=sqlite
20
+ - DB_FILE=${DB_FILE:-database/blue_bird.db}
21
+ - DATABASE_URL=${DATABASE_URL:-sqlite:database/blue_bird.db}
22
+ - REDIS_HOST=redis
23
+ - REDIS_PORT=6379
24
+ - PORT=3000
25
+ depends_on:
26
+ redis:
27
+ condition: service_healthy
28
+ networks:
29
+ - bluebird_net
30
+ profiles:
31
+ - prod
32
+
33
+ nginx:
34
+ image: nginx:1.27-alpine
35
+ container_name: ${TITLE:-bluebird}-nginx
36
+ restart: unless-stopped
37
+ ports:
38
+ - "${PORT:-3000}:80"
39
+ volumes:
40
+ - .:/app:ro
41
+ - ./docker/nginx.conf:/etc/nginx/nginx.conf:ro
42
+ networks:
43
+ - bluebird_net
44
+ profiles:
45
+ - prod
46
+
47
+ redis:
48
+ image: redis:7-alpine
49
+ container_name: ${TITLE:-bluebird}-redis
50
+ restart: unless-stopped
51
+ ports:
52
+ - "${REDIS_PORT:-6379}:6379"
53
+ volumes:
54
+ - redis_data:/data
55
+ networks:
56
+ - bluebird_net
57
+ healthcheck:
58
+ test: ["CMD", "redis-cli", "ping"]
59
+ interval: 5s
60
+ timeout: 3s
61
+ retries: 5
62
+
63
+ volumes:
64
+ redis_data:
65
+
66
+ networks:
67
+ bluebird_net:
68
+ name: ${TITLE:-bluebird}_network
69
+ driver: bridge
package/docker/nginx.conf CHANGED
@@ -65,6 +65,29 @@ http {
65
65
  try_files $uri =404;
66
66
  }
67
67
 
68
+ # -------------------------------------------------------------
69
+ # Optional: Protected Static Frontend Pages (auth_request)
70
+ # Uncomment this block to protect private static pages (e.g. /dashboard)
71
+ # Nginx will subrequest Express /api/auth/check before serving HTML.
72
+ # -------------------------------------------------------------
73
+ # location ~ ^/(dashboard|admin|app|account) {
74
+ # auth_request /api/auth/check;
75
+ # error_page 401 = @login_redirect;
76
+ # try_files $uri $uri.html /index.html =404;
77
+ # }
78
+ #
79
+ # location = /api/auth/check {
80
+ # internal;
81
+ # proxy_pass http://app:3000/api/auth/check;
82
+ # proxy_pass_request_body off;
83
+ # proxy_set_header Content-Length "";
84
+ # proxy_set_header X-Original-URI $request_uri;
85
+ # }
86
+ #
87
+ # location @login_redirect {
88
+ # return 302 /login?redirect=$request_uri;
89
+ # }
90
+
68
91
  location / {
69
92
  add_header Cache-Control "no-cache";
70
93
  try_files $uri $uri.html $uri/ @node_app;
@@ -54,6 +54,16 @@ services:
54
54
  - "${DB_PORT:-3306}:3306"
55
55
  volumes:
56
56
  - mysql_data:/var/lib/mysql
57
+ command: >
58
+ --default-authentication-plugin=mysql_native_password
59
+ --character-set-server=utf8mb4
60
+ --collation-server=utf8mb4_unicode_ci
61
+ --performance-schema=OFF
62
+ --innodb-buffer-pool-size=64M
63
+ --innodb-log-buffer-size=8M
64
+ --max-connections=50
65
+ --table-open-cache=200
66
+ --skip-log-bin
57
67
  healthcheck:
58
68
  test: [ "CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-p${DB_PASSWORD:-root}" ]
59
69
  interval: 10s
@@ -1,157 +1,157 @@
1
- <!DOCTYPE html>
2
- <html lang="en" data-theme="dark">
3
-
4
- <head>
5
- <meta charset="UTF-8">
6
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
- <title>Blue Bird - About</title>
8
- <link rel="canonical" href="https://seip25.github.io/Blue-bird/" />
9
- <meta name="description"
10
- content="Blue Bird is a fast, structured, and opinionated Express.js framework for developers who want visual elegance and performance with raw HTML and CSS.">
11
- <meta name="keywords" content="Blue Bird, Express.js, About, Semantic CSS, Architecture">
12
- <meta name="author" content="Seip25">
13
- <link rel="icon" href="/images/favicon.ico" />
14
- <link rel="stylesheet" href="/css/bluebird.css" />
15
- <script src="/js/bluebird.js"></script>
16
- </head>
17
-
18
- <body>
19
- <header>
20
- <nav>
21
- <a href="/" class="flex items-center gap-2">
22
- <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
23
- stroke-linecap="round" stroke-linejoin="round" class="text-blue">
24
- <path d="M12 19l9 2-9-18-9 18 9-2zm0 0v-8" />
25
- </svg>
26
- <strong class="text-xl text-gradient">Blue Bird</strong>
27
- </a>
28
- </nav>
29
- </header>
30
-
31
- <main>
32
- <aside>
33
- <h4>Menu</h4>
34
- <a href="/">Home</a>
35
- <a href="/about" class="active badge badge-glow px-3 py-3">About</a>
36
- <a href="https://seip25.github.io/Blue-bird-css/" target="_blank">Blue Bird CSS</a>
37
- <a href="https://github.com/seip25/Blue-bird" target="_blank" role="button"
38
- class="btn-sm outline">GitHub</a>
39
- </aside>
40
-
41
- <div>
42
- <section class="hero ">
43
- <h1 class="mt-3 text-gradient font-bold">About Blue Bird</h1>
44
- <p class="lead">Built for performance, simplicity, and raw speed.</p>
45
- </section>
46
-
47
- <article class="mt-6 ">
48
- <header>
49
- <h2 class="text-gradient-blue font-semibold">Our Philosophy</h2>
50
- </header>
51
- <p>
52
- Blue Bird was born out of a desire for a clean, performance-first approach to web development. We
53
- believe in harnessing the raw power of Express.js and Nginx, stripping away unnecessary bloat, and
54
- providing developers with a robust foundation that just works.
55
- </p>
56
- <p>
57
- By separating the static frontend delivery (handled blazingly fast by Nginx) from the dynamic API
58
- layer (powered by Express and Redis), Blue Bird achieves unparalleled performance out of the box.
59
- </p>
60
- </article>
61
-
62
- <div class="px-4 py-4 mb-4">
63
- <h2 class="text-gradient-blue font-semibold">Why Blue Bird?</h2>
64
-
65
- <div class="grid cols-2 gap-4">
66
- <div>
67
- <details open>
68
- <summary>Zero Config Docker</summary>
69
- <p>Go from development to production seamlessly with ready-to-use
70
- Docker orchestration for
71
- SQLite, MySQL, PostgreSQL, and Redis.</p>
72
- </details>
73
- <details open>
74
- <summary>Military Grade Security</summary>
75
- <p>Built-in AES-256-GCM JWT encryption, secure HttpOnly cookie
76
- sessions, helmet headers, and
77
- route rate limiting.</p>
78
- </details>
79
- </div>
80
- <div>
81
- <details open>
82
- <summary>High Performance Layer</summary>
83
- <p>Redis caching for the data layer and Nginx static delivery with
84
- 1-month browser asset
85
- caching.</p>
86
- </details>
87
- <details open>
88
- <summary>Pure Semantic HTML &amp; CSS</summary>
89
- <p>No bloated frontend frameworks or heavy node compile steps. Write
90
- clean, accessible code
91
- close to the metal.</p>
92
- </details>
93
- </div>
94
- </div>
95
- </article>
96
-
97
- <article class="">
98
- <header>
99
- <h2 class="text-gradient-blue font-semibold">Core Architecture Summary</h2>
100
- </header>
101
- <table class="table table-hover">
102
- <thead>
103
- <tr>
104
- <th>Layer</th>
105
- <th>Technology</th>
106
- <th>Role</th>
107
- </tr>
108
- </thead>
109
- <tbody>
110
- <tr>
111
- <td><strong>Frontend</strong></td>
112
- <td>Pure Semantic HTML5 + <a href="https://seip25.github.io/Blue-bird-css/"
113
- target="_blank">Blue Bird CSS</a></td>
114
- <td>Static rendering served directly via Nginx</td>
115
- </tr>
116
- <tr>
117
- <td><strong>Backend</strong></td>
118
- <td>Node.js + Express + PM2</td>
119
- <td>High-performance REST API services</td>
120
- </tr>
121
- <tr>
122
- <td><strong>Cache</strong></td>
123
- <td>Redis / In-Memory RAM</td>
124
- <td>Sub-millisecond route &amp; query caching</td>
125
- </tr>
126
- <tr>
127
- <td><strong>Database</strong></td>
128
- <td>SQLite (WAL) / PostgreSQL / MySQL</td>
129
- <td>Unified driver with connection pooling</td>
130
- </tr>
131
- </tbody>
132
- </table>
133
- </article>
134
-
135
-
136
- </div>
137
- </main>
138
-
139
- <footer>
140
- <div class="footer-content">
141
- <p>Powered by <strong class="text-gradient">Blue Bird Framework</strong> &amp;
142
- <strong class="text-gradient-blue">
143
- <a href="https://seip25.github.io/Blue-bird-css/" target="_blank">Blue Bird
144
- CSS</a>
145
- </strong>.
146
- </p>
147
- <div class="lang-switcher">
148
- <a href="/" class="lang-link">Home</a>
149
- <a href="/about" class="lang-link">About</a>
150
- <a href="https://github.com/seip25/Blue-bird" target="_blank" class="github-star mt-2">&#9733;
151
- GitHub</a>
152
- </div>
153
- </div>
154
- </footer>
155
- </body>
156
-
1
+ <!DOCTYPE html>
2
+ <html lang="en" data-theme="dark">
3
+
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+ <title>Blue Bird - About</title>
8
+ <link rel="canonical" href="https://seip25.github.io/Blue-bird/" />
9
+ <meta name="description"
10
+ content="Blue Bird is a fast, structured, and opinionated Express.js framework for developers who want visual elegance and performance with raw HTML and CSS.">
11
+ <meta name="keywords" content="Blue Bird, Express.js, About, Semantic CSS, Architecture">
12
+ <meta name="author" content="Seip25">
13
+ <link rel="icon" href="/images/favicon.ico" />
14
+ <link rel="stylesheet" href="/css/bluebird.css" />
15
+ <script src="/js/bluebird.js"></script>
16
+ </head>
17
+
18
+ <body>
19
+ <header>
20
+ <nav>
21
+ <a href="/" class="flex items-center gap-2">
22
+ <svg width="28" height="28" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"
23
+ stroke-linecap="round" stroke-linejoin="round" class="text-blue">
24
+ <path d="M12 19l9 2-9-18-9 18 9-2zm0 0v-8" />
25
+ </svg>
26
+ <strong class="text-xl text-gradient">Blue Bird</strong>
27
+ </a>
28
+ </nav>
29
+ </header>
30
+
31
+ <main>
32
+ <aside>
33
+ <h4>Menu</h4>
34
+ <a href="/">Home</a>
35
+ <a href="/about" class="active badge badge-glow px-3 py-3">About</a>
36
+ <a href="https://seip25.github.io/Blue-bird-css/" target="_blank">Blue Bird CSS</a>
37
+ <a href="https://github.com/seip25/Blue-bird" target="_blank" role="button"
38
+ class="btn-sm outline">GitHub</a>
39
+ </aside>
40
+
41
+ <div>
42
+ <section class="hero ">
43
+ <h1 class="mt-3 text-gradient font-bold">About Blue Bird</h1>
44
+ <p class="lead">Built for performance, simplicity, and raw speed.</p>
45
+ </section>
46
+
47
+ <article class="mt-6 ">
48
+ <header>
49
+ <h2 class="text-gradient-blue font-semibold">Our Philosophy</h2>
50
+ </header>
51
+ <p>
52
+ Blue Bird was born out of a desire for a clean, performance-first approach to web development. We
53
+ believe in harnessing the raw power of Express.js and Nginx, stripping away unnecessary bloat, and
54
+ providing developers with a robust foundation that just works.
55
+ </p>
56
+ <p>
57
+ By separating the static frontend delivery (handled blazingly fast by Nginx) from the dynamic API
58
+ layer (powered by Express and Redis), Blue Bird achieves unparalleled performance out of the box.
59
+ </p>
60
+ </article>
61
+
62
+ <div class="px-4 py-4 mb-4">
63
+ <h2 class="text-gradient-blue font-semibold">Why Blue Bird?</h2>
64
+
65
+ <div class="grid cols-2 gap-4">
66
+ <div>
67
+ <details open>
68
+ <summary>Zero Config Docker</summary>
69
+ <p>Go from development to production seamlessly with ready-to-use
70
+ Docker orchestration for
71
+ SQLite, MySQL, PostgreSQL, and Redis.</p>
72
+ </details>
73
+ <details open>
74
+ <summary>Military Grade Security</summary>
75
+ <p>Built-in AES-256-GCM JWT encryption, secure HttpOnly cookie
76
+ sessions, helmet headers, and
77
+ route rate limiting.</p>
78
+ </details>
79
+ </div>
80
+ <div>
81
+ <details open>
82
+ <summary>High Performance Layer</summary>
83
+ <p>Redis caching for the data layer and Nginx static delivery with
84
+ 1-month browser asset
85
+ caching.</p>
86
+ </details>
87
+ <details open>
88
+ <summary>Pure Semantic HTML &amp; CSS</summary>
89
+ <p>No bloated frontend frameworks or heavy node compile steps. Write
90
+ clean, accessible code
91
+ close to the metal.</p>
92
+ </details>
93
+ </div>
94
+ </div>
95
+ </article>
96
+
97
+ <article class="">
98
+ <header>
99
+ <h2 class="text-gradient-blue font-semibold">Core Architecture Summary</h2>
100
+ </header>
101
+ <table class="table table-hover">
102
+ <thead>
103
+ <tr>
104
+ <th>Layer</th>
105
+ <th>Technology</th>
106
+ <th>Role</th>
107
+ </tr>
108
+ </thead>
109
+ <tbody>
110
+ <tr>
111
+ <td><strong>Frontend</strong></td>
112
+ <td>Pure Semantic HTML5 + <a href="https://seip25.github.io/Blue-bird-css/"
113
+ target="_blank">Blue Bird CSS</a></td>
114
+ <td>Static rendering served directly via Nginx</td>
115
+ </tr>
116
+ <tr>
117
+ <td><strong>Backend</strong></td>
118
+ <td>Node.js + Express + PM2</td>
119
+ <td>High-performance REST API services</td>
120
+ </tr>
121
+ <tr>
122
+ <td><strong>Cache</strong></td>
123
+ <td>Redis / In-Memory RAM</td>
124
+ <td>Sub-millisecond route &amp; query caching</td>
125
+ </tr>
126
+ <tr>
127
+ <td><strong>Database</strong></td>
128
+ <td>SQLite (WAL) / PostgreSQL / MySQL</td>
129
+ <td>Unified driver with connection pooling</td>
130
+ </tr>
131
+ </tbody>
132
+ </table>
133
+ </article>
134
+
135
+
136
+ </div>
137
+ </main>
138
+
139
+ <footer>
140
+ <div class="footer-content">
141
+ <p>Powered by <strong class="text-gradient">Blue Bird Framework</strong> &amp;
142
+ <strong class="text-gradient-blue">
143
+ <a href="https://seip25.github.io/Blue-bird-css/" target="_blank">Blue Bird
144
+ CSS</a>
145
+ </strong>.
146
+ </p>
147
+ <div class="lang-switcher">
148
+ <a href="/" class="lang-link">Home</a>
149
+ <a href="/about" class="lang-link">About</a>
150
+ <a href="https://github.com/seip25/Blue-bird" target="_blank" class="github-star mt-2">&#9733;
151
+ GitHub</a>
152
+ </div>
153
+ </div>
154
+ </footer>
155
+ </body>
156
+
157
157
  </html>