Skip to content

Commit b0e08a8

Browse files
AchoArnoldCopilot
andcommitted
feat(web): configure nuxt.config.ts with Vuetify 4, VueFire, Pinia
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 7f1e227 commit b0e08a8

4 files changed

Lines changed: 180 additions & 6 deletions

File tree

web/.env.example

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Firebase
2+
FIREBASE_API_KEY=
3+
FIREBASE_AUTH_DOMAIN=
4+
FIREBASE_PROJECT_ID=
5+
FIREBASE_STORAGE_BUCKET=
6+
FIREBASE_MESSAGING_SENDER_ID=
7+
FIREBASE_APP_ID=
8+
FIREBASE_MEASUREMENT_ID=
9+
10+
# App
11+
API_BASE_URL=http://localhost:8000
12+
APP_URL=https://httpsms.com
13+
APP_NAME=HTTP SMS
14+
APP_GITHUB_URL=https://github.com/NdoleStudio/httpsms
15+
APP_DOCUMENTATION_URL=https://docs.httpsms.com
16+
APP_DOWNLOAD_URL=https://apk.httpsms.com/HttpSms.apk
17+
APP_ENV=local
18+
19+
# Billing
20+
CHECKOUT_URL=
21+
ENTERPRISE_CHECKOUT_URL=
22+
23+
# Cloudflare
24+
CLOUDFLARE_TURNSTILE_SITE_KEY=
25+
26+
# Pusher
27+
PUSHER_KEY=
28+
PUSHER_CLUSTER=

web/app/app.vue

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
<template>
2-
<div>
3-
<NuxtRouteAnnouncer />
4-
<NuxtWelcome />
5-
</div>
2+
<NuxtLayout>
3+
<NuxtPage />
4+
</NuxtLayout>
65
</template>
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
@use "vuetify/settings" with (
2+
$grid-breakpoints: (
3+
"md": 960px,
4+
"lg": 1280px,
5+
"xl": 1920px,
6+
"xxl": 2560px,
7+
)
8+
);

web/nuxt.config.ts

Lines changed: 141 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,144 @@
11
// https://nuxt.com/docs/api/configuration/nuxt-config
22
export default defineNuxtConfig({
3-
compatibilityDate: "2025-07-15",
4-
devtools: { enabled: true },
3+
compatibilityDate: "2025-01-01",
4+
5+
ssr: true,
6+
7+
modules: ["vuetify-nuxt-module", "nuxt-vuefire", "@pinia/nuxt"],
8+
9+
css: ["vuetify/styles"],
10+
11+
build: {
12+
transpile: ["vuetify", "chart.js", "vue-chartjs"],
13+
},
14+
15+
vite: {
16+
define: {
17+
"process.env.DEBUG": false,
18+
},
19+
css: {
20+
preprocessorOptions: {
21+
scss: {
22+
api: "modern-compiler",
23+
},
24+
},
25+
},
26+
},
27+
28+
vuetify: {
29+
moduleOptions: {
30+
styles: { configFile: "app/assets/styles/settings.scss" },
31+
},
32+
vuetifyOptions: {
33+
theme: {
34+
defaultTheme: "dark",
35+
},
36+
icons: {
37+
defaultSet: "mdi-svg",
38+
},
39+
display: {
40+
thresholds: {
41+
md: 960,
42+
lg: 1280,
43+
xl: 1920,
44+
xxl: 2560,
45+
},
46+
},
47+
},
48+
},
49+
50+
vuefire: {
51+
config: {
52+
apiKey: process.env.FIREBASE_API_KEY,
53+
authDomain: process.env.FIREBASE_AUTH_DOMAIN,
54+
projectId: process.env.FIREBASE_PROJECT_ID,
55+
storageBucket: process.env.FIREBASE_STORAGE_BUCKET,
56+
messagingSenderId: process.env.FIREBASE_MESSAGING_SENDER_ID,
57+
appId: process.env.FIREBASE_APP_ID,
58+
measurementId: process.env.FIREBASE_MEASUREMENT_ID,
59+
},
60+
auth: {
61+
enabled: true,
62+
},
63+
},
64+
65+
runtimeConfig: {
66+
public: {
67+
apiBaseUrl: process.env.API_BASE_URL || "http://localhost:8000",
68+
appUrl: process.env.APP_URL || "https://httpsms.com",
69+
appName: process.env.APP_NAME || "HTTP SMS",
70+
appGithubUrl:
71+
process.env.APP_GITHUB_URL || "https://github.com/NdoleStudio/httpsms",
72+
appDocumentationUrl:
73+
process.env.APP_DOCUMENTATION_URL || "https://docs.httpsms.com",
74+
appDownloadUrl:
75+
process.env.APP_DOWNLOAD_URL || "https://apk.httpsms.com/HttpSms.apk",
76+
appEnv: process.env.APP_ENV || "production",
77+
checkoutUrl: process.env.CHECKOUT_URL || "",
78+
enterpriseCheckoutUrl: process.env.ENTERPRISE_CHECKOUT_URL || "",
79+
cloudflareTurnstileSiteKey:
80+
process.env.CLOUDFLARE_TURNSTILE_SITE_KEY || "",
81+
pusherKey: process.env.PUSHER_KEY || "",
82+
pusherCluster: process.env.PUSHER_CLUSTER || "",
83+
},
84+
},
85+
86+
nitro: {
87+
prerender: {
88+
routes: ["/"],
89+
},
90+
},
91+
92+
routeRules: {
93+
"/messages": { ssr: false },
94+
"/settings": { ssr: false },
95+
"/threads/**": { ssr: false },
96+
"/billing": { ssr: false },
97+
"/bulk-messages": { ssr: false },
98+
},
99+
100+
app: {
101+
head: {
102+
titleTemplate: "%s",
103+
title: "Convert your android phone into an SMS gateway - httpSMS",
104+
htmlAttrs: { lang: "en" },
105+
script: [
106+
{ src: "/integrations.js", async: true, defer: true },
107+
{
108+
src: "https://lmsqueezy.com/affiliate.js",
109+
async: true,
110+
defer: true,
111+
},
112+
{
113+
src: "https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit",
114+
},
115+
],
116+
meta: [
117+
{ charset: "utf-8" },
118+
{ name: "viewport", content: "width=device-width, initial-scale=1" },
119+
{
120+
name: "description",
121+
content:
122+
"Use your android phone to send and receive SMS messages using a simple HTTP API.",
123+
},
124+
{ name: "format-detection", content: "telephone=no" },
125+
{ name: "twitter:site", content: "@NdoleStudio" },
126+
{ name: "twitter:card", content: "summary_large_image" },
127+
{
128+
property: "og:title",
129+
content: "Convert your android phone into an SMS gateway - httpSMS",
130+
},
131+
{
132+
property: "og:description",
133+
content:
134+
"Use your android phone to send and receive SMS messages using a simple HTTP API.",
135+
},
136+
{
137+
property: "og:image",
138+
content: "https://httpsms.com/header.png",
139+
},
140+
],
141+
link: [{ rel: "icon", type: "image/x-icon", href: "/favicon.ico" }],
142+
},
143+
},
5144
});

0 commit comments

Comments
 (0)