feat: activate live pricing

This commit is contained in:
Vasily Zubarev
2025-04-24 20:19:57 +02:00
parent b4045930e2
commit 088d596480
5 changed files with 28 additions and 18 deletions

View File

@@ -51,7 +51,9 @@ export default async function CloudPaymentSuccessPage({
<CardTitle className="text-3xl font-bold "> <CardTitle className="text-3xl font-bold ">
<ColoredText>Payment Successful</ColoredText> <ColoredText>Payment Successful</ColoredText>
</CardTitle> </CardTitle>
<CardDescription className="text-center text-xl">You can login to your account now</CardDescription> <CardDescription className="text-center text-xl">
Welcome to TaxHacker, {user.name}. You can login to your account now
</CardDescription>
<CardContent className="w-full"> <CardContent className="w-full">
<LoginForm defaultEmail={user.email} /> <LoginForm defaultEmail={user.email} />
</CardContent> </CardContent>

View File

@@ -29,6 +29,9 @@ export async function POST(request: NextRequest) {
}, },
], ],
mode: "subscription", mode: "subscription",
automatic_tax: {
enabled: true,
},
success_url: config.stripe.paymentSuccessUrl, success_url: config.stripe.paymentSuccessUrl,
cancel_url: config.stripe.paymentCancelUrl, cancel_url: config.stripe.paymentCancelUrl,
}) })

View File

@@ -7,7 +7,6 @@ services:
environment: environment:
- NODE_ENV=production - NODE_ENV=production
- BASE_URL=https://taxhacker.app - BASE_URL=https://taxhacker.app
- DISABLE_SIGNUP=true
- SELF_HOSTED_MODE=false - SELF_HOSTED_MODE=false
- UPLOAD_PATH=/app/data/uploads - UPLOAD_PATH=/app/data/uploads
env_file: env_file:

View File

@@ -14,20 +14,26 @@ server {
ssl_certificate /home/vas3k/certs/pubkey.pem; ssl_certificate /home/vas3k/certs/pubkey.pem;
ssl_certificate_key /home/vas3k/certs/privkey.pem; ssl_certificate_key /home/vas3k/certs/privkey.pem;
location / { # Global security headers
add_header "Access-Control-Allow-Origin" "*"; add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
add_header "Access-Control-Allow-Methods" "GET, POST, OPTIONS"; add_header X-Content-Type-Options "nosniff" always;
add_header "Access-Control-Allow-Headers" "DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range"; add_header Referrer-Policy "strict-origin-when-cross-origin" always;
add_header "Access-Control-Expose-Headers" "Content-Length,Content-Range"; add_header X-Frame-Options "DENY" always;
add_header "Strict-Transport-Security" "max-age=31536000;includeSubDomains"; add_header Permissions-Policy "accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()" always;
add_header "X-Content-Type-Options" "nosniff"; add_header Content-Security-Policy "default-src 'self'; img-src 'self' data:; script-src 'self'; style-src 'self';" always;
add_header "Referrer-Policy" "strict-origin-when-cross-origin";
add_header "Permissions-Policy" "accelerometer=(),camera=(),geolocation=(self 'https://taxhacker.app'),gyroscope=(),magnetometer=(),microphone=(),payment=(),usb=()"; location / {
# CORS headers (adjust if needed)
add_header Access-Control-Allow-Origin "https://taxhacker.app";
add_header Access-Control-Allow-Methods "GET, POST, OPTIONS";
add_header Access-Control-Allow-Headers "DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range";
add_header Access-Control-Expose-Headers "Content-Length,Content-Range";
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header "Host" $http_host;
proxy_set_header "X-Forwarded-Host" $host;
proxy_set_header "X-Forwarded-For" $proxy_add_x_forwarded_for;
proxy_set_header "X-Forwarded-Proto" $scheme;
proxy_redirect off; proxy_redirect off;
proxy_buffering off; proxy_buffering off;

View File

@@ -47,7 +47,7 @@ export const PLANS: Record<string, Plan> = {
"Unlimited fields, categories and projects", "Unlimited fields, categories and projects",
], ],
price: "€35 for a year", price: "€35 for a year",
stripePriceId: "price_1RHTmTAs8DS4NhOzGnWqxvZC", stripePriceId: "price_1RHTj1As8DS4NhOzhejpTN3I",
limits: { limits: {
storage: 512 * 1024 * 1024, storage: 512 * 1024 * 1024,
ai: 1000, ai: 1000,