Skip to content

Commit edd4708

Browse files
guguclaude
andcommitted
Configure SaaS environment for Tailscale dev server
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 960ad2a commit edd4708

2 files changed

Lines changed: 185 additions & 202 deletions

File tree

frontend/angular.json

Lines changed: 183 additions & 200 deletions
Original file line numberDiff line numberDiff line change
@@ -1,202 +1,185 @@
11
{
2-
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
3-
"version": 1,
4-
"newProjectRoot": "projects",
5-
"projects": {
6-
"dissendium-v0": {
7-
"projectType": "application",
8-
"schematics": {},
9-
"root": "",
10-
"sourceRoot": "src",
11-
"prefix": "app",
12-
"architect": {
13-
"build": {
14-
"builder": "@angular-devkit/build-angular:browser",
15-
"options": {
16-
"outputPath": "dist/dissendium-v0",
17-
"index": "src/index.html",
18-
"main": "src/main.ts",
19-
"polyfills": "src/polyfills.ts",
20-
"tsConfig": "tsconfig.app.json",
21-
"assets": [
22-
"src/favicon.ico",
23-
"src/assets",
24-
"src/config.json",
25-
{
26-
"glob": "**/*",
27-
"input": "./node_modules/monaco-editor/min",
28-
"output": "./assets/monaco"
29-
}
30-
],
31-
"styles": [
32-
"src/custom-theme.scss",
33-
"src/styles.scss"
34-
],
35-
"stylePreprocessorOptions": {
36-
"includePaths": ["node_modules/@brumeilde/ngx-theme/presets/material"]
37-
},
38-
"scripts": [
39-
],
40-
"vendorChunk": true,
41-
"extractLicenses": false,
42-
"buildOptimizer": false,
43-
"sourceMap": true,
44-
"optimization": false,
45-
"namedChunks": true
46-
},
47-
"configurations": {
48-
"production": {
49-
"fileReplacements": [
50-
{
51-
"replace": "src/environments/environment.ts",
52-
"with": "src/environments/environment.prod.ts"
53-
}
54-
],
55-
"optimization": true,
56-
"outputHashing": "all",
57-
"sourceMap": true,
58-
"namedChunks": false,
59-
"extractLicenses": true,
60-
"vendorChunk": false,
61-
"buildOptimizer": true,
62-
"budgets": [
63-
{
64-
"type": "initial",
65-
"maximumWarning": "2mb",
66-
"maximumError": "5mb"
67-
},
68-
{
69-
"type": "anyComponentStyle",
70-
"maximumWarning": "10kb",
71-
"maximumError": "20kb"
72-
}
73-
]
74-
},
75-
"development": {
76-
"fileReplacements": [
77-
{
78-
"replace": "src/environments/environment.ts",
79-
"with": "src/environments/environment.dev.ts"
80-
}
81-
],
82-
"optimization": false,
83-
"outputHashing": "all",
84-
"sourceMap": true,
85-
"namedChunks": false,
86-
"extractLicenses": true,
87-
"vendorChunk": false,
88-
"buildOptimizer": false
89-
},
90-
"saas": {
91-
"index": {
92-
"input": "src/index.saas.html",
93-
"output": "index.html"
94-
},
95-
"fileReplacements": [
96-
{
97-
"replace": "src/environments/environment.ts",
98-
"with": "src/environments/environment.saas-prod.ts"
99-
}
100-
]
101-
},
102-
"saas-production": {
103-
"index": {
104-
"input": "src/index.saas.html",
105-
"output": "index.html"
106-
},
107-
"fileReplacements": [
108-
{
109-
"replace": "src/environments/environment.ts",
110-
"with": "src/environments/environment.saas-prod.ts"
111-
}
112-
],
113-
"optimization": true,
114-
"outputHashing": "all",
115-
"sourceMap": true,
116-
"namedChunks": false,
117-
"extractLicenses": true,
118-
"vendorChunk": false,
119-
"buildOptimizer": true,
120-
"budgets": [
121-
{
122-
"type": "initial",
123-
"maximumWarning": "2mb",
124-
"maximumError": "5mb"
125-
},
126-
{
127-
"type": "anyComponentStyle",
128-
"maximumWarning": "10kb",
129-
"maximumError": "20kb"
130-
}
131-
]
132-
}
133-
},
134-
"defaultConfiguration": ""
135-
},
136-
"serve": {
137-
"builder": "@angular-devkit/build-angular:dev-server",
138-
"options": {
139-
"buildTarget": "dissendium-v0:build",
140-
"host": "127.0.0.1",
141-
"proxyConfig": "src/proxy.conf.json"
142-
},
143-
"configurations": {
144-
"production": {
145-
"buildTarget": "dissendium-v0:build:production"
146-
},
147-
"saas": {
148-
"buildTarget": "dissendium-v0:build:saas"
149-
},
150-
"development": {
151-
"buildTarget": "dissendium-v0:build:development"
152-
}
153-
}
154-
},
155-
"extract-i18n": {
156-
"builder": "@angular-devkit/build-angular:extract-i18n",
157-
"options": {
158-
"buildTarget": "dissendium-v0:build"
159-
}
160-
},
161-
"test": {
162-
"builder": "@angular-devkit/build-angular:karma",
163-
"options": {
164-
"main": "src/test.ts",
165-
"polyfills": "src/polyfills.ts",
166-
"tsConfig": "tsconfig.spec.json",
167-
"karmaConfig": "karma.conf.js",
168-
"assets": [
169-
"src/favicon.ico",
170-
"src/assets",
171-
"src/config.json"
172-
],
173-
"styles": [
174-
"src/custom-theme.scss",
175-
"src/styles.scss"
176-
],
177-
"stylePreprocessorOptions": {
178-
"includePaths": ["node_modules/@brumeilde/ngx-theme/presets/material"]
179-
},
180-
"scripts": []
181-
}
182-
},
183-
"lint": {
184-
"builder": "@angular-devkit/build-angular:tslint",
185-
"options": {
186-
"tsConfig": [
187-
"tsconfig.app.json",
188-
"tsconfig.spec.json",
189-
"e2e/tsconfig.json"
190-
],
191-
"exclude": [
192-
"**/node_modules/**"
193-
]
194-
}
195-
}
196-
}
197-
}
198-
},
199-
"cli": {
200-
"analytics": false
201-
}
2+
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
3+
"version": 1,
4+
"newProjectRoot": "projects",
5+
"projects": {
6+
"dissendium-v0": {
7+
"projectType": "application",
8+
"schematics": {},
9+
"root": "",
10+
"sourceRoot": "src",
11+
"prefix": "app",
12+
"architect": {
13+
"build": {
14+
"builder": "@angular-devkit/build-angular:browser",
15+
"options": {
16+
"outputPath": "dist/dissendium-v0",
17+
"index": "src/index.html",
18+
"main": "src/main.ts",
19+
"polyfills": "src/polyfills.ts",
20+
"tsConfig": "tsconfig.app.json",
21+
"assets": [
22+
"src/favicon.ico",
23+
"src/assets",
24+
"src/config.json",
25+
{
26+
"glob": "**/*",
27+
"input": "./node_modules/monaco-editor/min",
28+
"output": "./assets/monaco"
29+
}
30+
],
31+
"styles": ["src/custom-theme.scss", "src/styles.scss"],
32+
"stylePreprocessorOptions": {
33+
"includePaths": ["node_modules/@brumeilde/ngx-theme/presets/material"]
34+
},
35+
"scripts": [],
36+
"vendorChunk": true,
37+
"extractLicenses": false,
38+
"buildOptimizer": false,
39+
"sourceMap": true,
40+
"optimization": false,
41+
"namedChunks": true
42+
},
43+
"configurations": {
44+
"production": {
45+
"fileReplacements": [
46+
{
47+
"replace": "src/environments/environment.ts",
48+
"with": "src/environments/environment.prod.ts"
49+
}
50+
],
51+
"optimization": true,
52+
"outputHashing": "all",
53+
"sourceMap": true,
54+
"namedChunks": false,
55+
"extractLicenses": true,
56+
"vendorChunk": false,
57+
"buildOptimizer": true,
58+
"budgets": [
59+
{
60+
"type": "initial",
61+
"maximumWarning": "2mb",
62+
"maximumError": "5mb"
63+
},
64+
{
65+
"type": "anyComponentStyle",
66+
"maximumWarning": "10kb",
67+
"maximumError": "20kb"
68+
}
69+
]
70+
},
71+
"development": {
72+
"fileReplacements": [
73+
{
74+
"replace": "src/environments/environment.ts",
75+
"with": "src/environments/environment.dev.ts"
76+
}
77+
],
78+
"optimization": false,
79+
"outputHashing": "all",
80+
"sourceMap": true,
81+
"namedChunks": false,
82+
"extractLicenses": true,
83+
"vendorChunk": false,
84+
"buildOptimizer": false
85+
},
86+
"saas": {
87+
"index": {
88+
"input": "src/index.saas.html",
89+
"output": "index.html"
90+
},
91+
"fileReplacements": [
92+
{
93+
"replace": "src/environments/environment.ts",
94+
"with": "src/environments/environment.saas.ts"
95+
}
96+
]
97+
},
98+
"saas-production": {
99+
"index": {
100+
"input": "src/index.saas.html",
101+
"output": "index.html"
102+
},
103+
"fileReplacements": [
104+
{
105+
"replace": "src/environments/environment.ts",
106+
"with": "src/environments/environment.saas-prod.ts"
107+
}
108+
],
109+
"optimization": true,
110+
"outputHashing": "all",
111+
"sourceMap": true,
112+
"namedChunks": false,
113+
"extractLicenses": true,
114+
"vendorChunk": false,
115+
"buildOptimizer": true,
116+
"budgets": [
117+
{
118+
"type": "initial",
119+
"maximumWarning": "2mb",
120+
"maximumError": "5mb"
121+
},
122+
{
123+
"type": "anyComponentStyle",
124+
"maximumWarning": "10kb",
125+
"maximumError": "20kb"
126+
}
127+
]
128+
}
129+
},
130+
"defaultConfiguration": ""
131+
},
132+
"serve": {
133+
"builder": "@angular-devkit/build-angular:dev-server",
134+
"options": {
135+
"buildTarget": "dissendium-v0:build",
136+
"host": "127.0.0.1",
137+
"proxyConfig": "src/proxy.conf.json"
138+
},
139+
"configurations": {
140+
"production": {
141+
"buildTarget": "dissendium-v0:build:production"
142+
},
143+
"saas": {
144+
"buildTarget": "dissendium-v0:build:saas"
145+
},
146+
"development": {
147+
"buildTarget": "dissendium-v0:build:development"
148+
}
149+
}
150+
},
151+
"extract-i18n": {
152+
"builder": "@angular-devkit/build-angular:extract-i18n",
153+
"options": {
154+
"buildTarget": "dissendium-v0:build"
155+
}
156+
},
157+
"test": {
158+
"builder": "@angular-devkit/build-angular:karma",
159+
"options": {
160+
"main": "src/test.ts",
161+
"polyfills": "src/polyfills.ts",
162+
"tsConfig": "tsconfig.spec.json",
163+
"karmaConfig": "karma.conf.js",
164+
"assets": ["src/favicon.ico", "src/assets", "src/config.json"],
165+
"styles": ["src/custom-theme.scss", "src/styles.scss"],
166+
"stylePreprocessorOptions": {
167+
"includePaths": ["node_modules/@brumeilde/ngx-theme/presets/material"]
168+
},
169+
"scripts": []
170+
}
171+
},
172+
"lint": {
173+
"builder": "@angular-devkit/build-angular:tslint",
174+
"options": {
175+
"tsConfig": ["tsconfig.app.json", "tsconfig.spec.json", "e2e/tsconfig.json"],
176+
"exclude": ["**/node_modules/**"]
177+
}
178+
}
179+
}
180+
}
181+
},
182+
"cli": {
183+
"analytics": false
184+
}
202185
}

frontend/src/environments/environment.saas.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
export const environment = {
22
saas: true,
33
production: false,
4-
apiRoot: '/api',
5-
saasURL: '',
4+
apiRoot: 'https://rocketadmin-dev.tail9f8b2.ts.net/api',
5+
saasURL: 'https://rocketadmin-dev.tail9f8b2.ts.net',
66
saasHostnames: ['app.rocketadmin.com', 'localhost', 'rocketadmin-dev.tail9f8b2.ts.net'],
77
stagingHost: 'rocketadmin-dev.tail9f8b2.ts.net', // Tailscale host
88
version: '0.0.0',

0 commit comments

Comments
 (0)