@@ -126,7 +126,7 @@ namespace vix::commands::new_cmd::templates
126126 std::string make_vix_json_backend (const std::string &projectName)
127127 {
128128 std::string s;
129- s.reserve (5200 );
129+ s.reserve (7200 );
130130
131131 s += " {\n " ;
132132 s += " \" name\" : \" " + projectName + " \" ,\n " ;
@@ -141,8 +141,12 @@ namespace vix::commands::new_cmd::templates
141141 s += " \" build\" : \" vix build\" ,\n " ;
142142 s += " \" check\" : \" vix check --tests --run\" ,\n " ;
143143 s += " \" test\" : \" vix tests\" ,\n " ;
144- s += " \" health\" : \" vix health local\" ,\n " ;
144+ s += " \" env\" : \" vix env check\" ,\n " ;
145+ s += " \" health\" : \" vix health\" ,\n " ;
145146 s += " \" logs\" : \" vix logs\" ,\n " ;
147+ s += " \" service\" : \" vix service status\" ,\n " ;
148+ s += " \" proxy\" : \" vix proxy nginx check\" ,\n " ;
149+ s += " \" doctor\" : \" vix doctor production\" ,\n " ;
146150 s += " \" deploy\" : \" vix deploy\" ,\n " ;
147151 s += " \" orm:status\" : \" vix orm status\" ,\n " ;
148152 s += " \" orm:migrate\" : \" vix orm migrate\" ,\n " ;
@@ -151,6 +155,9 @@ namespace vix::commands::new_cmd::templates
151155 s += " \" production\" : {\n " ;
152156 s += " \" service\" : {\n " ;
153157 s += " \" name\" : \" " + projectName + " \" ,\n " ;
158+ s += " \" user\" : \"\" ,\n " ;
159+ s += " \" working_dir\" : \" .\" ,\n " ;
160+ s += " \" exec\" : \" bin/" + projectName + " \" ,\n " ;
154161 s += " \" restart\" : \" always\" ,\n " ;
155162 s += " \" restart_sec\" : 3,\n " ;
156163 s += " \" limit_nofile\" : 65535\n " ;
@@ -159,31 +166,61 @@ namespace vix::commands::new_cmd::templates
159166 s += " \" http\" : 8080,\n " ;
160167 s += " \" websocket\" : 9090\n " ;
161168 s += " },\n " ;
169+ s += " \" websocket\" : {\n " ;
170+ s += " \" host\" : \" 127.0.0.1\" ,\n " ;
171+ s += " \" port\" : 9090,\n " ;
172+ s += " \" path\" : \" /ws\" ,\n " ;
173+ s += " \" local_url\" : \" ws://127.0.0.1:9090/ws\" ,\n " ;
174+ s += " \" public_url\" : \"\" ,\n " ;
175+ s += " \" timeout_ms\" : 5000,\n " ;
176+ s += " \" heartbeat\" : true\n " ;
177+ s += " },\n " ;
162178 s += " \" proxy\" : {\n " ;
163179 s += " \" type\" : \" nginx\" ,\n " ;
164180 s += " \" domain\" : \"\" ,\n " ;
165181 s += " \" tls\" : false,\n " ;
166- s += " \" websocket_path\" : \" /ws\"\n " ;
182+ s += " \" websocket_path\" : \" /ws\" ,\n " ;
183+ s += " \" certificate\" : \"\" ,\n " ;
184+ s += " \" certificate_key\" : \"\"\n " ;
167185 s += " },\n " ;
168186 s += " \" health\" : {\n " ;
187+ s += " \" service\" : \" " + projectName + " \" ,\n " ;
169188 s += " \" local\" : \" http://127.0.0.1:8080/health\" ,\n " ;
170189 s += " \" public\" : \"\" ,\n " ;
171- s += " \" websocket\" : \"\"\n " ;
190+ s += " \" websocket\" : \"\" ,\n " ;
191+ s += " \" expected_status\" : 200,\n " ;
192+ s += " \" timeout_ms\" : 2000,\n " ;
193+ s += " \" max_response_ms\" : 1000\n " ;
172194 s += " },\n " ;
173195 s += " \" deploy\" : {\n " ;
174196 s += " \" pull\" : true,\n " ;
175197 s += " \" branch\" : \" main\" ,\n " ;
176198 s += " \" build\" : \" vix build\" ,\n " ;
177199 s += " \" tests\" : false,\n " ;
200+ s += " \" test_command\" : \" vix tests\" ,\n " ;
178201 s += " \" service\" : \" " + projectName + " \" ,\n " ;
179202 s += " \" health_local\" : true,\n " ;
180203 s += " \" health_public\" : false,\n " ;
181- s += " \" logs_on_failure\" : true\n " ;
204+ s += " \" proxy_check\" : true,\n " ;
205+ s += " \" proxy_reload\" : false,\n " ;
206+ s += " \" logs_on_failure\" : true,\n " ;
207+ s += " \" log_lines\" : 80,\n " ;
208+ s += " \" rollback\" : false\n " ;
182209 s += " },\n " ;
183210 s += " \" logs\" : {\n " ;
184- s += " \" app\" : \" journalctl -u " + projectName + " \" ,\n " ;
185- s += " \" proxy_access\" : \" /var/log/nginx/" + projectName + " .access.log\" ,\n " ;
186- s += " \" proxy_error\" : \" /var/log/nginx/" + projectName + " .error.log\"\n " ;
211+ s += " \" service\" : \" " + projectName + " \" ,\n " ;
212+ s += " \" nginx_access\" : \" /var/log/nginx/" + projectName + " .access.log\" ,\n " ;
213+ s += " \" nginx_error\" : \" /var/log/nginx/" + projectName + " .error.log\" ,\n " ;
214+ s += " \" lines\" : 120\n " ;
215+ s += " },\n " ;
216+ s += " \" env\" : {\n " ;
217+ s += " \" required\" : [\n " ;
218+ s += " \" APP_NAME\" ,\n " ;
219+ s += " \" APP_ENV\" ,\n " ;
220+ s += " \" SERVER_PORT\" ,\n " ;
221+ s += " \" DATABASE_ENGINE\" ,\n " ;
222+ s += " \" DATABASE_SQLITE_PATH\"\n " ;
223+ s += " ]\n " ;
187224 s += " },\n " ;
188225 s += " \" database\" : {\n " ;
189226 s += " \" engine\" : \" sqlite\" ,\n " ;
0 commit comments