O monitoramento em tempo real só está disponível quando o servidor está online. Por favor, inicie o servidor para visualizar estatísticas em tempo real.
+
+
+
+ {/* Memory Usage Card - Static */}
+
+
+
+ Uso de Memória
+
+
Memória alocada: {serverData.ram}
+
+
+ {/* CPU Usage Card - Static */}
+
+
+
+ Uso de CPU
+
+
CPU alocada: {serverData.cpu}
+
+
+ {/* Disk Usage Card - Static */}
+
+
+
+ Uso de Disco
+
+
Espaço alocado: {serverData.disk}
+
+
+ {/* Network Card - Static */}
+
+
+
+ Rede
+
+
IP: {serverData.ip}
+
+
+
+ );
+ }
+
+ // Show loading indicator while connecting
+ if (isConnecting) {
+ return (
+
+
Monitoramento
+
+
+
Conectando ao monitoramento...
+
+
+ );
+ }
+
+ // Show error if connection failed
+ if (wsError && !isConnected) {
+ return (
+
O monitoramento em tempo real só está disponível quando o servidor está online. Por favor, inicie o servidor para visualizar estatísticas em tempo real.
-
-
-
- {/* Memory Usage Card - Static */}
-
-
-
- Uso de Memória
-
-
Memória alocada: {serverData.ram}
-
-
- {/* CPU Usage Card - Static */}
-
-
-
- Uso de CPU
-
-
CPU alocada: {serverData.cpu}
-
-
- {/* Disk Usage Card - Static */}
-
-
-
- Uso de Disco
-
-
Espaço alocado: {serverData.disk}
-
-
- {/* Network Card - Static */}
-
-
-
- Rede
-
-
IP: {serverData.ip}
-
-
-
- );
- }
-
- // Show loading indicator while connecting
- if (isConnecting) {
- return (
-
-
Monitoramento
-
-
-
Conectando ao monitoramento...
-
-
- );
- }
-
- // Show error if connection failed
- if (wsError && !isConnected) {
- return (
-
+ {confirmAction === "start" && "Tem certeza que deseja iniciar o servidor?"}
+ {confirmAction === "stop" && "Tem certeza que deseja parar o servidor?"}
+ {confirmAction === "restart" && "Tem certeza que deseja reiniciar o servidor?"}
+ {confirmAction === "force_stop" && "Tem certeza que deseja forçar o desligamento do servidor? Isso pode causar perda de dados."}
+
+ );
+}
diff --git a/src/services/api/ftp.ts b/src/services/api/ftp.ts
new file mode 100644
index 0000000..a38bef3
--- /dev/null
+++ b/src/services/api/ftp.ts
@@ -0,0 +1,95 @@
+import config from "../../../config.json";
+
+export interface FtpInfo {
+ url: string;
+ port: number;
+ username: string;
+ protocol: string;
+ password?: string;
+}
+
+// Get FTP information for a game server
+export const getServerFtpInfo = async (
+ identifier: string,
+ accessKey: string
+): Promise<{ success: boolean; data?: FtpInfo; error?: string }> => {
+ if (!accessKey) {
+ return { success: false, error: "No access token provided." };
+ }
+
+ try {
+ const response = await fetch(
+ `${config.api.baseUrl}/v1/users/me/servers/games/${identifier}/ftp`,
+ {
+ method: "GET",
+ headers: {
+ Authorization: `Bearer ${accessKey}`,
+ "Content-Type": "application/json",
+ },
+ }
+ );
+
+ const responseData = await response.json();
+
+ if (response.ok && responseData.success) {
+ return {
+ success: true,
+ data: responseData.data as FtpInfo,
+ };
+ } else {
+ return {
+ success: false,
+ error: responseData.message || "Failed to fetch FTP information",
+ };
+ }
+ } catch (err: any) {
+ console.error("Error fetching FTP information:", err);
+ return {
+ success: false,
+ error: err.message || "An unknown error occurred while fetching FTP information",
+ };
+ }
+};
+
+// Reset FTP password for a game server
+export const resetServerFtpPassword = async (
+ identifier: string,
+ accessKey: string
+): Promise<{ success: boolean; data?: FtpInfo; error?: string }> => {
+ if (!accessKey) {
+ return { success: false, error: "No access token provided." };
+ }
+
+ try {
+ const response = await fetch(
+ `${config.api.baseUrl}/v1/users/me/servers/games/${identifier}/ftp?action=resetpassword`,
+ {
+ method: "GET",
+ headers: {
+ Authorization: `Bearer ${accessKey}`,
+ "Content-Type": "application/json",
+ },
+ }
+ );
+
+ const responseData = await response.json();
+
+ if (response.ok && responseData.success) {
+ return {
+ success: true,
+ data: responseData.data as FtpInfo,
+ };
+ } else {
+ return {
+ success: false,
+ error: responseData.message || "Failed to reset FTP password",
+ };
+ }
+ } catch (err: any) {
+ console.error("Error resetting FTP password:", err);
+ return {
+ success: false,
+ error: err.message || "An unknown error occurred while resetting FTP password",
+ };
+ }
+};
diff --git a/src/services/api/vps.ts b/src/services/api/vps.ts
new file mode 100644
index 0000000..b800962
--- /dev/null
+++ b/src/services/api/vps.ts
@@ -0,0 +1,92 @@
+import config from "../../../config.json";
+
+export interface VpsDetails {
+ type: "vps";
+ identifier: number;
+ uuid: string;
+ name: string;
+ status: string;
+ hostname: string;
+ ip: string;
+ ips: string[];
+ os: {
+ name: string;
+ distro: string;
+ template: string;
+ };
+ resources: {
+ cpu: string;
+ ram: string;
+ disk: string;
+ bandwidth: string;
+ };
+ usage: {
+ cpu: string;
+ ram: string;
+ disk: string;
+ bandwidth: string;
+ };
+ limits: {
+ cpu: string;
+ ram: string;
+ disk: string;
+ bandwidth: string;
+ };
+ vnc_url: string;
+ vps_data: any;
+}
+
+// Fetch VPS details from API
+export const getVpsDetails = async (
+ vpsUuid: string,
+ accessToken: string
+): Promise<{ success: boolean; data?: VpsDetails; error?: string }> => {
+ if (!accessToken) {
+ return { success: false, error: "No access token provided." };
+ }
+
+ try {
+ const response = await fetch(
+ `${config.api.baseUrl}/v1/users/me/servers/vps/${vpsUuid}`,
+ {
+ method: "GET",
+ headers: {
+ Authorization: `Bearer ${accessToken}`,
+ "Content-Type": "application/json",
+ },
+ }
+ );
+
+ if (!response.ok) {
+ const errorData = await response.json();
+ return {
+ success: false,
+ error: errorData.message || `Failed to fetch VPS details: ${response.statusText}`,
+ };
+ }
+
+ const data = await response.json();
+ return { success: true, data: data as VpsDetails };
+ } catch (error: any) {
+ return {
+ success: false,
+ error: error.message || "An unknown error occurred while fetching VPS details",
+ };
+ }
+};
+
+// Power actions (just placeholder for now)
+export const sendVpsPowerAction = async (
+ vpsUuid: string,
+ action: string,
+ accessToken: string
+): Promise<{ success: boolean; message?: string }> => {
+ // This is just a placeholder since the actual implementation wasn't requested yet
+ console.log(`[Placeholder] Power action ${action} for VPS ${vpsUuid}`);
+
+ // Return success for UI testing
+ return {
+ success: true,
+ message: `${action.charAt(0).toUpperCase() + action.slice(1)} command sent successfully`
+ };
+};
diff --git a/src/types/server.ts b/src/types/server.ts
index fca3091..f5b5fa0 100644
--- a/src/types/server.ts
+++ b/src/types/server.ts
@@ -1,7 +1,9 @@
export interface Server {
name: string;
- identifier: string;
+ identifier: string | number;
status: string;
+ type: "game" | "vps";
+ gameType?: "minecraft" | "mta" | "samp";
cpu?: string;
ram?: string;
disk?: string;
@@ -9,6 +11,10 @@ export interface Server {
location?: string;
uptime?: string;
last_updated?: string;
+ suspended?: boolean;
+ is_suspended?: boolean;
+ uuid?: string;
+ vps_data?: any;
[key: string]: any;
}
From 3c66ff3cc1f68608852503c8e6f1a24c6f39af2a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?T=C3=BAlio=20Zanella?=
Date: Sun, 10 Aug 2025 18:20:35 -0300
Subject: [PATCH 4/8] feat(vps): update VPS management components with polling,
loading states, and power action implementation
---
.env | 4 +-
src/app/dashboard/vps/[uuid]/page.tsx | 65 +++++++++++--
src/components/vps/VpsNetwork.tsx | 5 +-
src/components/vps/VpsOverview.tsx | 31 +++++-
src/components/vps/VpsPowerControls.tsx | 124 ++++++++++++++++++++----
src/components/vps/VpsResources.tsx | 6 +-
src/services/api/vps.ts | 62 ++++++++++--
7 files changed, 254 insertions(+), 43 deletions(-)
diff --git a/.env b/.env
index 1138bec..ac67a9f 100644
--- a/.env
+++ b/.env
@@ -1,4 +1,4 @@
-API_URL=http://localhost:5050
-NEXT_PUBLIC_API_URL=http://localhost:5050
+API_URL=https://api-dev.firehosting.com.br
+NEXT_PUBLIC_API_URL=https://api-dev.firehosting.com.br
NEXT_PUBLIC_SOCKET_URL=https://firehosting-socket.squareweb.app
NEXT_PUBLIC_CENTRAL_URL=https://central.firehosting.com.br
\ No newline at end of file
diff --git a/src/app/dashboard/vps/[uuid]/page.tsx b/src/app/dashboard/vps/[uuid]/page.tsx
index 81d2109..6ddeca2 100644
--- a/src/app/dashboard/vps/[uuid]/page.tsx
+++ b/src/app/dashboard/vps/[uuid]/page.tsx
@@ -34,29 +34,61 @@ export default function VpsDetailPage() {
}
}, [accessKey, authLoading, router]);
- // Load VPS details
+ // Load VPS details with polling every 5 seconds
useEffect(() => {
- const fetchVpsDetails = async () => {
+ // Flag to track if it's the initial load
+ let isInitialLoad = true;
+
+ const fetchVpsDetails = async (isInitial: boolean) => {
if (!accessKey) return;
try {
- setLoading(true);
+ // Only show loading indicator on initial load
+ if (isInitial) {
+ setLoading(true);
+ }
+
const result = await getVpsDetails(uuid, accessKey);
if (result.success && result.data) {
setVps(result.data);
setError(null);
} else {
- setError(result.error || "Erro ao carregar detalhes do servidor VPS");
+ // Only set error on initial load or if we don't have existing data
+ if (isInitial || !vps) {
+ setError(result.error || "Erro ao carregar detalhes do servidor VPS");
+ } else {
+ // Silently log error for background refreshes
+ console.error("Background refresh error:", result.error);
+ }
}
} catch (err: any) {
- setError(err.message || "Ocorreu um erro ao carregar os detalhes do servidor");
+ // Only set error on initial load or if we don't have existing data
+ if (isInitial || !vps) {
+ setError(err.message || "Ocorreu um erro ao carregar os detalhes do servidor");
+ } else {
+ // Silently log error for background refreshes
+ console.error(`Background refresh error for VPS ${uuid}:`, err);
+ }
} finally {
- setLoading(false);
+ // Only update loading state on initial load
+ if (isInitial) {
+ setLoading(false);
+ isInitialLoad = false;
+ }
}
};
- fetchVpsDetails();
+ // Initial fetch
+ fetchVpsDetails(isInitialLoad);
+
+ // Setup polling every 5 seconds
+ const pollInterval = setInterval(() => {
+ fetchVpsDetails(false); // Subsequent fetches aren't initial
+ }, 5000);
+
+ // Cleanup interval on unmount
+ return () => clearInterval(pollInterval);
}, [uuid, accessKey]);
// Update URL hash when tab changes
@@ -70,7 +102,9 @@ export default function VpsDetailPage() {
setActiveTab(tab);
};
- if (loading || authLoading) {
+ // Only show loading if we're in initial load (no VPS data) and loading state is true
+ // Or if auth is still loading
+ if ((loading && !vps) || authLoading) {
return (
@@ -81,7 +115,8 @@ export default function VpsDetailPage() {
);
}
- if (error) {
+ // Only show error if we don't have VPS data and there's an error
+ if (error && !vps) {
return (
@@ -101,6 +136,18 @@ export default function VpsDetailPage() {
);
}
+ // If we have no VPS data at all, show a loading message
+ if (!vps) {
+ return (
+
diff --git a/src/services/api/vps.ts b/src/services/api/vps.ts
index b800962..5399d4a 100644
--- a/src/services/api/vps.ts
+++ b/src/services/api/vps.ts
@@ -75,18 +75,62 @@ export const getVpsDetails = async (
}
};
-// Power actions (just placeholder for now)
+// Power actions
export const sendVpsPowerAction = async (
vpsUuid: string,
action: string,
accessToken: string
-): Promise<{ success: boolean; message?: string }> => {
- // This is just a placeholder since the actual implementation wasn't requested yet
- console.log(`[Placeholder] Power action ${action} for VPS ${vpsUuid}`);
-
- // Return success for UI testing
- return {
- success: true,
- message: `${action.charAt(0).toUpperCase() + action.slice(1)} command sent successfully`
+): Promise<{ success: boolean; message?: string; error?: string }> => {
+ if (!accessToken) {
+ return { success: false, error: "No access token provided." };
+ }
+
+ // Map our action names to API action parameters
+ const actionMap: Record = {
+ start: "start",
+ stop: "stop",
+ restart: "restart",
+ poweroff: "poweroff",
+ force_stop: "poweroff" // Force stop maps to poweroff API action
};
+
+ const apiAction = actionMap[action];
+
+ if (!apiAction) {
+ return { success: false, error: "Invalid action provided." };
+ }
+
+ try {
+ const response = await fetch(
+ `${config.api.baseUrl}/v1/users/me/servers/vps/${vpsUuid}?action=${apiAction}`,
+ {
+ method: "POST",
+ headers: {
+ Authorization: `Bearer ${accessToken}`,
+ "Content-Type": "application/json",
+ },
+ }
+ );
+
+ if (!response.ok) {
+ const errorData = await response.json();
+ return {
+ success: false,
+ error: errorData.message || `Failed to execute ${action} action: ${response.statusText}`,
+ };
+ }
+
+ // Parse response
+ const data = await response.json();
+
+ return {
+ success: true,
+ message: data.message || `${action.charAt(0).toUpperCase() + action.slice(1)} command sent successfully`
+ };
+ } catch (error: any) {
+ return {
+ success: false,
+ error: error.message || `An unknown error occurred while executing ${action} action`,
+ };
+ }
};
From 0ea28ed699940e8a4bc2f53d8c2b4106c0027ace Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?T=C3=BAlio=20Zanella?=
Date: Sun, 10 Aug 2025 18:54:50 -0300
Subject: [PATCH 5/8] feat: add MTA, SAMP, and Webhosting plans components with
pricing and features
---
src/app/services/blob/metadata.ts | 9 +
src/app/services/blob/page.tsx | 650 ++++++++++++++++
src/app/services/mta/metadata.ts | 9 +
src/app/services/mta/page.tsx | 370 +++++++++
src/app/services/page.tsx | 257 +++++--
src/app/services/samp/metadata.ts | 9 +
src/app/services/samp/page.tsx | 429 +++++++++++
src/app/services/webhosting/metadata.ts | 9 +
src/app/services/webhosting/page.tsx | 716 ++++++++++++++++++
src/components/mta/MtaPlans.tsx | 221 ++++++
src/components/samp/SampPlans.tsx | 221 ++++++
src/components/webhosting/WebhostingPlans.tsx | 234 ++++++
12 files changed, 3086 insertions(+), 48 deletions(-)
create mode 100644 src/app/services/blob/metadata.ts
create mode 100644 src/app/services/blob/page.tsx
create mode 100644 src/app/services/mta/metadata.ts
create mode 100644 src/app/services/mta/page.tsx
create mode 100644 src/app/services/samp/metadata.ts
create mode 100644 src/app/services/samp/page.tsx
create mode 100644 src/app/services/webhosting/metadata.ts
create mode 100644 src/app/services/webhosting/page.tsx
create mode 100644 src/components/mta/MtaPlans.tsx
create mode 100644 src/components/samp/SampPlans.tsx
create mode 100644 src/components/webhosting/WebhostingPlans.tsx
diff --git a/src/app/services/blob/metadata.ts b/src/app/services/blob/metadata.ts
new file mode 100644
index 0000000..81bcd86
--- /dev/null
+++ b/src/app/services/blob/metadata.ts
@@ -0,0 +1,9 @@
+import { Metadata } from "next";
+
+export const metadata: Metadata = {
+ title: "Blob Storage | FireHosting",
+ description:
+ "Armazenamento de objetos escalável, durável e de alta performance. Armazene e acesse seus dados de qualquer lugar a qualquer momento.",
+ keywords:
+ "blob storage, armazenamento de objetos, armazenamento em nuvem, s3 compatível, armazenamento escalável",
+};
diff --git a/src/app/services/blob/page.tsx b/src/app/services/blob/page.tsx
new file mode 100644
index 0000000..6931270
--- /dev/null
+++ b/src/app/services/blob/page.tsx
@@ -0,0 +1,650 @@
+"use client";
+
+import { useState, useEffect } from "react";
+import Link from "next/link";
+import {
+ FiCloud,
+ FiLock,
+ FiHardDrive,
+ FiDatabase,
+ FiZap,
+ FiGlobe,
+ FiShield,
+ FiTrendingUp,
+ FiDownload,
+ FiUpload,
+ FiFileText,
+ FiSettings,
+ FiAlertCircle,
+ FiInfo,
+ FiCloudDrizzle,
+ FiTag,
+ FiLayers,
+ FiPieChart,
+ FiSliders
+} from "react-icons/fi";
+
+const features = [
+ {
+ icon: FiCloud,
+ title: "Altamente Escalável",
+ description: "Armazene de alguns megabytes a petabytes de dados com facilidade, pagando apenas pelo que usar."
+ },
+ {
+ icon: FiLock,
+ title: "Seguro e Durável",
+ description: "Seus dados são replicados em múltiplos locais para garantir redundância e segurança máxima."
+ },
+ {
+ icon: FiGlobe,
+ title: "Acesso Global",
+ description: "Acesse seus dados de qualquer lugar, a qualquer momento, com alta disponibilidade e baixa latência."
+ },
+ {
+ icon: FiZap,
+ title: "Integração Simples",
+ description: "API compatível com S3 para integração fácil com suas aplicações existentes."
+ },
+ {
+ icon: FiHardDrive,
+ title: "Gerenciamento Flexível",
+ description: "Gerencie seus dados através de nosso painel intuitivo ou via API RESTful."
+ },
+ {
+ icon: FiShield,
+ title: "Criptografia Avançada",
+ description: "Seus dados são criptografados tanto em trânsito quanto em repouso para segurança máxima."
+ }
+];
+
+const useCases = [
+ {
+ icon: FiFileText,
+ title: "Armazenamento de Backups",
+ description: "Solução perfeita para backups de bancos de dados, servidores e sistemas críticos."
+ },
+ {
+ icon: FiGlobe,
+ title: "Distribuição de Conteúdo",
+ description: "Armazene e entregue arquivos estáticos como imagens, vídeos e documentos para seus websites."
+ },
+ {
+ icon: FiTrendingUp,
+ title: "Big Data e Analytics",
+ description: "Armazene e processe grandes volumes de dados para análises e inteligência de negócios."
+ },
+ {
+ icon: FiCloudDrizzle,
+ title: "Data Lake",
+ description: "Crie repositórios centralizados para armazenar dados estruturados e não estruturados em qualquer escala."
+ }
+];
+
+const faqs = [
+ {
+ question: "O que é Blob Storage?",
+ answer: "Blob Storage é um serviço de armazenamento de objetos escalável e durável na nuvem. É ideal para armazenar grandes quantidades de dados não estruturados, como documentos, imagens, vídeos, backups, e arquivos de log."
+ },
+ {
+ question: "Como funciona a cobrança?",
+ answer: "A cobrança é baseada no uso real de recursos. Você paga apenas pelo armazenamento que utilizar (GB) e pelo número de objetos armazenados, com preços extremamente competitivos a partir de R$ 0,15 por GB e R$ 0,30 a cada 250 objetos."
+ },
+ {
+ question: "Qual a diferença entre Blob Storage e hospedagem tradicional?",
+ answer: "Enquanto a hospedagem tradicional é projetada para executar aplicações e sites, o Blob Storage é específico para armazenamento eficiente de grandes volumes de dados, sem limitações de tamanho ou tipo de arquivo, com alta escalabilidade."
+ },
+ {
+ question: "Como posso acessar meus dados armazenados?",
+ answer: "Seus dados podem ser acessados via nosso painel de controle intuitivo, através de API RESTful compatível com o protocolo S3, ou por meio de SDKs disponíveis para as principais linguagens de programação."
+ },
+ {
+ question: "O Blob Storage é seguro?",
+ answer: "Sim, todos os dados armazenados são criptografados em repouso e durante a transferência. Implementamos múltiplas camadas de segurança, incluindo autenticação por token, políticas de acesso detalhadas e registros de auditoria."
+ },
+ {
+ question: "Quando o serviço estará disponível?",
+ answer: "O Blob Storage está em desenvolvimento final e será lançado em breve. Registre seu interesse para receber atualizações e ter acesso prioritário quando o serviço for lançado oficialmente."
+ }
+];
+
+export default function BlobStoragePage() {
+ const [objectCount, setObjectCount] = useState(1000);
+ const [storageGB, setStorageGB] = useState(10);
+ const [showTooltip, setShowTooltip] = useState(false);
+ const [activeFaq, setActiveFaq] = useState(null);
+
+ // Pricing configuration
+ const pricePerObject = 0.30 / 250; // R$0.30 per 250 objects
+ const pricePerGB = 0.15; // R$0.15 per GB
+
+ // Calculate total price
+ const objectPrice = objectCount * pricePerObject;
+ const storagePrice = storageGB * pricePerGB;
+ const totalPrice = objectPrice + storagePrice;
+
+ const toggleFaq = (index: number) => {
+ if (activeFaq === index) {
+ setActiveFaq(null);
+ } else {
+ setActiveFaq(index);
+ }
+ };
+
+ return (
+
+ {/* Hero Section */}
+
+
+
+
+
+
+
+
+
+
+
+ Em breve
+
+
+
+ Blob Storage Escalável e Seguro
+
+
+
+ Armazenamento de objetos de alta performance, escalável e durável.
+ Armazene e acesse seus dados de qualquer lugar, a qualquer momento,
+ pagando apenas pelo que usar.
+
+
+
+
+ Calcular Preço
+
+
+ Conhecer Recursos
+
+
+
+
+
+ Em desenvolvimento - Lançamento em breve
+
+
+
+
+
+
+
+
+
+
+
Blob Storage FireHosting
+
+
+
+
+ Armazenamento:
+
+ Ilimitado
+
+
+
+
+ Tipos de objetos:
+
+ Qualquer formato
+
+
+
+
+ Tamanho máximo:
+
+ 5TB por objeto
+
+
+
+
+ Disponibilidade:
+
+ 99.99%
+
+
+
+
+ Cobrança:
+
+ Pay-per-use
+
+
+
+
+ API:
+
+ S3 Compatível
+
+
+
+
+
+
+
+
+
+
+
+ {/* Features Section */}
+
+
+
+
+ Recursos Avançados
+
+
+ Uma solução de armazenamento completa e flexível para atender às necessidades
+ de qualquer aplicação ou empresa.
+
+
+
+
+ {features.map((feature, index) => (
+
+
+
+
+
{feature.title}
+
{feature.description}
+
+ ))}
+
+
+
+
+
+
API Compatível com S3
+
+ Nossa API é totalmente compatível com o protocolo S3, permitindo que você migre
+ facilmente suas aplicações existentes ou integre novos serviços sem alterações significativas.
+
+
+
+
+ SDKs disponíveis para todas as linguagens populares
+
+
+
+ Suporte a upload/download de múltiplos arquivos
+
+
+
+ Recursos avançados de metadados e tagging
+
+
+
+ Configuração de políticas de acesso detalhadas
+
+
+
+
+
+
// Exemplo de código usando SDK
+
+
+{`import { FireBlobClient } from 'fireblobjs';
+
+// Inicializa o cliente
+const client = new FireBlobClient({
+ endpoint: 'https://blob.firehosting.com.br',
+ accessKey: 'YOUR_ACCESS_KEY',
+ secretKey: 'YOUR_SECRET_KEY',
+});
+
+// Faz upload de um arquivo
+async function uploadFile() {
+ const result = await client.putObject({
+ Bucket: 'my-bucket',
+ Key: 'folder/filename.jpg',
+ Body: fileData,
+ ContentType: 'image/jpeg',
+ });
+ console.log('Upload concluído:', result);
+}`}
+
+
+
+
+
+
+
+
+ {/* Use Cases Section */}
+
+
+
+
+ Casos de Uso Populares
+
+
+ O Blob Storage é versátil e pode ser usado em diversos cenários para
+ armazenamento e distribuição de dados.
+
+
+
+
+ {useCases.map((useCase, index) => (
+
+
+
+
+
+
{useCase.title}
+
{useCase.description}
+
+
+ ))}
+
+
+
+
+ Consultar Casos Específicos
+
+
+
+
+
+ {/* Price Calculator */}
+
+
+
+
+ Calculadora de Preços
+
+
+ Estime o custo mensal do seu armazenamento baseado na quantidade de
+ objetos e espaço necessário.
+
+ Total Mensal:
+
+ R$ {totalPrice.toFixed(2).replace('.', ',')}
+
+
+
+
+
+
+
+
+ Em breve!
+
+ Contratar Agora
+
+
+
+
+
+
+
+
+
+
+
+
O Blob Storage está chegando!
+
+ Nosso serviço de Blob Storage está em fase final de desenvolvimento e será lançado em breve.
+ Esta calculadora fornece uma estimativa de preços baseada em nossa tabela planejada.
+ Registre seu interesse para receber notificações sobre o lançamento.
+
+
+
+
+
+
+
+ {/* Comparison Section */}
+
+
+
+
+ Por Que Escolher o FireHosting Blob Storage
+
+
+ Uma comparação entre nosso serviço de armazenamento e outros provedores populares.
+
+
+
+
+
+
+
+
Recurso
+
FireHosting Blob
+
Amazon S3
+
Google Cloud Storage
+
+
+
+
+
Preço por GB
+
R$ 0,15
+
≈ R$ 0,25*
+
≈ R$ 0,28*
+
+
+
Cobrança por objetos
+
R$ 0,30 por 250 objetos
+
R$ 0,40 por 1000 requisições
+
R$ 0,42 por 1000 requisições
+
+
+
Infraestrutura no Brasil
+
Sim
+
Sim
+
Sim
+
+
+
Faturamento em Reais
+
Sim
+
Não
+
Não
+
+
+
Suporte em Português
+
Sim
+
Não**
+
Não**
+
+
+
Taxa de saída
+
Sem cobrança
+
Cobrado à parte
+
Cobrado à parte
+
+
+
+
+
+ * Valores aproximados, convertidos de USD. Sujeitos a variação cambial.
+ ** Suporte em português disponível apenas em planos empresariais.
+
+
+
+
+
+ {/* FAQ Section */}
+
+
+
+
+ Perguntas Frequentes
+
+
+ Tire suas dúvidas sobre nosso serviço de armazenamento de objetos
+
+
+
+
+ {faqs.map((faq, index) => (
+
toggleFaq(index)}
+ >
+
+
{faq.question}
+
+
+ {activeFaq === index ? "-" : "+"}
+
+
+
+
+ {activeFaq === index && (
+
+
{faq.answer}
+
+ )}
+
+ ))}
+
+
+
+
+ {/* CTA Section */}
+
+
+
+
+ Interessado no nosso{" "}
+ Blob Storage?
+
+
+ Deixe seu e-mail para receber novidades e acesso antecipado
+ quando o serviço for lançado oficialmente.
+
+
+
+
+
+ Prometemos não enviar spam. Você pode cancelar a inscrição a qualquer momento.
+
+
+
+
+
+ );
+}
diff --git a/src/app/services/mta/metadata.ts b/src/app/services/mta/metadata.ts
new file mode 100644
index 0000000..ee43018
--- /dev/null
+++ b/src/app/services/mta/metadata.ts
@@ -0,0 +1,9 @@
+import { Metadata } from "next";
+
+export const metadata: Metadata = {
+ title: "Hospedagem de Servidores MTA | FireHosting",
+ description:
+ "Servidores Multi Theft Auto de alta performance com proteção DDoS e hardware de ponta. Ideal para comunidades de roleplay e servidores de diversão.",
+ keywords:
+ "hospedagem mta, servidor mta, mta hosting, multi theft auto, mta brasil, mta server, mta roleplay, mta gamer",
+};
diff --git a/src/app/services/mta/page.tsx b/src/app/services/mta/page.tsx
new file mode 100644
index 0000000..1aaa7d8
--- /dev/null
+++ b/src/app/services/mta/page.tsx
@@ -0,0 +1,370 @@
+"use client";
+
+import { useState } from "react";
+import Link from "next/link";
+import Image from "next/image";
+import {
+ FiServer,
+ FiShield,
+ FiCpu,
+ FiDownload,
+ FiClock,
+ FiHeart,
+ FiCheck,
+ FiHardDrive,
+ FiGlobe,
+ FiUsers,
+ FiZap,
+ FiHeadphones,
+ FiCode,
+ FiDatabase,
+ FiTrendingUp,
+ FiMap,
+ FiThumbsUp,
+ FiFileText,
+} from "react-icons/fi";
+import MtaPlans from "@/components/mta/MtaPlans";
+
+const benefits = [
+ {
+ icon: FiCpu,
+ title: "Processadores de Última Geração",
+ description:
+ "Nossos servidores MTA são equipados com processadores AMD Ryzen 9, garantindo performance máxima e sem lag para seus jogadores.",
+ },
+ {
+ icon: FiHardDrive,
+ title: "Armazenamento SSD NVMe",
+ description:
+ "Desfrute de velocidades de leitura/escrita ultrarrápidas com armazenamento SSD NVMe em todos os planos.",
+ },
+ {
+ icon: FiShield,
+ title: "Proteção DDoS Inclusa",
+ description:
+ "Todos os planos contam com proteção contra ataques DDoS para manter seu servidor sempre online e seguro.",
+ },
+ {
+ icon: FiGlobe,
+ title: "Suporte a Mods e Scripts",
+ description:
+ "Total compatibilidade com mods, scripts LUA e recursos populares para criar o servidor MTA dos seus sonhos.",
+ },
+ {
+ icon: FiClock,
+ title: "Uptime de 99.9%",
+ description:
+ "Garantimos a mais alta disponibilidade com nossa infraestrutura robusta e redundante.",
+ },
+ {
+ icon: FiHeart,
+ title: "Suporte Técnico 24/7",
+ description:
+ "Nossa equipe de especialistas está sempre disponível para ajudar com qualquer questão sobre seu servidor MTA.",
+ },
+];
+
+const faqs = [
+ {
+ question: "O que é um servidor MTA?",
+ answer:
+ "Multi Theft Auto (MTA) é uma modificação multiplayer para o jogo Grand Theft Auto: San Andreas que permite jogar online com outras pessoas. Um servidor MTA hospeda esses jogos multiplayer, permitindo que você crie sua própria comunidade de jogadores.",
+ },
+ {
+ question: "Como funciona a instalação de scripts e mods?",
+ answer:
+ "Nossa plataforma permite instalar scripts e mods com facilidade através do painel de controle. Você pode fazer upload de arquivos, editar configurações e reiniciar o servidor com apenas alguns cliques.",
+ },
+ {
+ question: "Quantos jogadores meu servidor MTA pode suportar?",
+ answer:
+ "A capacidade de jogadores depende do plano escolhido. Oferecemos opções que vão desde servidores pequenos para grupos de amigos até grandes comunidades com centenas de jogadores simultâneos.",
+ },
+ {
+ question: "É possível migrar meu servidor MTA de outro provedor?",
+ answer:
+ "Sim! Oferecemos migração gratuita para novos clientes. Nossa equipe cuidará de todo o processo para garantir uma transição suave sem perda de dados ou configurações.",
+ },
+ {
+ question: "Vocês oferecem suporte para configurar meu servidor MTA?",
+ answer:
+ "Sim, nossa equipe de suporte está disponível 24/7 para ajudar com a configuração do seu servidor, instalação de scripts e solução de problemas técnicos.",
+ },
+];
+
+export default function MtaHostingPage() {
+ const [showFaq, setShowFaq] = useState(null);
+
+ const toggleFaq = (index: number) => {
+ if (showFaq === index) {
+ setShowFaq(null);
+ } else {
+ setShowFaq(index);
+ }
+ };
+
+ const features = [
+ {
+ title: "Painel de Controle Intuitivo",
+ description: "Gerencie seu servidor MTA com facilidade através do nosso painel personalizado.",
+ icon: FiServer,
+ },
+ {
+ title: "Backups Diários",
+ description: "Seus dados sempre seguros com backups automáticos diários inclusos em todos os planos.",
+ icon: FiDatabase,
+ },
+ {
+ title: "Instalador de Recursos",
+ description: "Instale mods e recursos populares com apenas um clique através do nosso instalador exclusivo.",
+ icon: FiDownload,
+ },
+ {
+ title: "Monitoramento 24/7",
+ description: "Servidores monitorados 24 horas por dia para garantir máxima disponibilidade.",
+ icon: FiTrendingUp,
+ },
+ {
+ title: "Banco de Dados Ilimitados",
+ description: "Crie quantos bancos de dados MySQL precisar para seus scripts e recursos.",
+ icon: FiFileText,
+ },
+ {
+ title: "Compatibilidade Total",
+ description: "100% compatível com todos os recursos e scripts MTA populares no mercado.",
+ icon: FiCode,
+ },
+ ];
+
+ const testimonials = [
+ {
+ name: "Carlos Souza",
+ role: "Dono do servidor RP Dreams",
+ avatar: "https://i.pravatar.cc/100?img=1",
+ content:
+ "Após migrar meu servidor MTA para a FireHosting, a performance melhorou significativamente. Os jogadores não relatam mais lag mesmo com 100+ jogadores online. O suporte é excelente e sempre me ajuda com qualquer problema.",
+ },
+ {
+ name: "Julia Mendes",
+ role: "Administradora do Forever RP",
+ avatar: "https://i.pravatar.cc/100?img=5",
+ content:
+ "Escolhi a FireHosting depois de passar por 3 empresas diferentes. Aqui finalmente encontrei estabilidade e performance para meu servidor de roleplay. A instalação de recursos é super simples e o painel de controle é intuitivo.",
+ },
+ {
+ name: "Rafael Martins",
+ role: "Desenvolvedor MTA",
+ avatar: "https://i.pravatar.cc/100?img=3",
+ content:
+ "Como desenvolvedor, precisava de um servidor que suportasse meus scripts complexos. A FireHosting não só atendeu minhas expectativas como superou. Recomendo para qualquer um que queira qualidade.",
+ },
+ ];
+
+ return (
+
+ {/* Hero Section */}
+
+
+
+
+
+
+
+
+
+
+
+ MTA Hosting Premium
+
+
+
+ Servidores{" "}
+ MTA de Alta Performance{" "}
+ para sua Comunidade
+
+
+
+ Crie sua comunidade MTA com servidores otimizados para Multi Theft Auto.
+ Hardware de ponta, proteção DDoS e painel de controle simplificado para
+ uma experiência de jogo perfeita.
+
+ Escolha o plano ideal para seu servidor MTA. Todos os planos
+ incluem armazenamento SSD NVMe, proteção DDoS e painel de controle intuitivo.
+
+
+
+
+
+
+
+ Precisa de uma solução personalizada?
+
+ Fale com um especialista
+
+
+
+
+
+
+ {/* Benefícios Section */}
+
+
+
+
+ Vantagens dos nossos Servidores MTA
+
+
+ Descubra por que nossa infraestrutura para MTA é a escolha certa
+ para garantir a performance e a segurança do seu servidor.
+
+
+
+
+ {benefits.map((benefit, index) => (
+
+
+
+
+
{benefit.title}
+
{benefit.description}
+
+ ))}
+
+
+
+
+ {/* FAQ Section */}
+
+
+
+
+ Perguntas Frequentes
+
+
+ Tire suas dúvidas sobre nossos serviços de hospedagem MTA.
+
+
+
+
+ {faqs.map((faq, index) => (
+
+
{faq.question}
+
{faq.answer}
+
+ ))}
+
+
+
+
+ {/* CTA Section */}
+
+
+
+
+ Pronto para criar seu servidor{" "}
+ MTA?
+
+
+ Nossa equipe está pronta para ajudar você a escolher o plano
+ ideal. Comece agora e tenha seu servidor online em minutos.
+
+
+
+ Contratar Hospedagem
+
+
+ Tirar Dúvidas
+
+
+
+
+
+
+ );
+}
diff --git a/src/app/services/page.tsx b/src/app/services/page.tsx
index aa350cd..f9751aa 100644
--- a/src/app/services/page.tsx
+++ b/src/app/services/page.tsx
@@ -1,24 +1,46 @@
import { Metadata } from "next";
import Link from "next/link";
-import { FiCpu, FiServer, FiCheck } from "react-icons/fi";
-import { SiMinecraft } from "react-icons/si";
+import {
+ FiCpu,
+ FiServer,
+ FiCheck,
+ FiCloud,
+ FiDatabase,
+ FiGlobe,
+ FiHardDrive,
+ FiLayers,
+ FiMonitor,
+ FiShield
+} from "react-icons/fi";
+import { SiMinecraft, SiApachenetbeanside } from "react-icons/si";
+import { GiCarWheel, GiCube } from "react-icons/gi";
+import { HiOutlineGlobe } from "react-icons/hi";
export const metadata: Metadata = {
title: "Nossos Serviços | FireHosting",
keywords:
- "hospedagem de servidores, VPS, servidores dedicados, hospedagem web, proteção DDoS, Minecraft hosting, SAMP hosting, MTA hosting",
+ "hospedagem de servidores, VPS, servidores dedicados, hospedagem web, proteção DDoS, Minecraft hosting, SAMP hosting, MTA hosting, cPanel hosting, blob storage",
description:
- "Explore nossas soluções de hospedagem de alta performance, incluindo servidores para Minecraft e VPS robustos para suas aplicações.",
+ "Explore nossas soluções de hospedagem de alta performance, incluindo servidores para games, VPS robustos, web hosting e armazenamento em nuvem para suas aplicações.",
authors: [{ name: "FireHosting Team" }],
};
+// Categorias de serviços
+const categories = [
+ { id: "games", name: "Serviços para Games" },
+ { id: "web", name: "Serviços Web" },
+ { id: "cloud", name: "Serviços em Nuvem" }
+];
+
const services = [
+ // Categoria: Games
{
title: "Hospedagem Minecraft",
description:
"Servidores otimizados para Minecraft com hardware de ponta, proteção DDoS e painel de controle fácil de usar.",
link: "/services/minecraft",
icon: SiMinecraft,
+ category: "games",
features: [
"AMD Ryzen 9 7900X 5,6 GHz",
"Hardware de Alta Performance",
@@ -29,12 +51,49 @@ const services = [
"Backups Automáticos",
],
},
+ {
+ title: "Hospedagem MTA",
+ description:
+ "Servidores de alta performance para Multi Theft Auto com proteção anti-DDoS e suporte técnico especializado.",
+ link: "/services/mta",
+ icon: GiCarWheel,
+ category: "games",
+ features: [
+ "Processadores de Alta Performance",
+ "Proteção DDoS Grátis",
+ "Anti-Crash Automático",
+ "Painel de Controle Intuitivo",
+ "Instalação Imediata",
+ "Suporte Técnico 24/7",
+ "99,9% de Uptime",
+ ],
+ },
+ {
+ title: "Hospedagem SAMP",
+ description:
+ "Servidores SA-MP otimizados com baixo ping, hardware de ponta e proteção contra ataques.",
+ link: "/services/samp",
+ icon: GiCube,
+ category: "games",
+ features: [
+ "Latência Ultra Baixa",
+ "AMD Ryzen 9 7900X",
+ "Proteção Anti-DDoS",
+ "Painel de Controle Amigável",
+ "Suporte para Plugins",
+ "Ativação Instantânea",
+ "Suporte Técnico Especializado",
+ ],
+ },
+
+ // Categoria: Web
{
title: "Servidores VPS",
description:
"VPS de alta performance com acesso root, armazenamento SSD NVMe e flexibilidade total para suas aplicações.",
link: "/services/vps",
icon: FiCpu,
+ category: "web",
features: [
"AMD Ryzen 9 7900X 5,6 GHz",
"Acesso Root Completo",
@@ -45,67 +104,169 @@ const services = [
"Escalabilidade Fácil",
],
},
+ {
+ title: "Web Hosting cPanel",
+ description:
+ "Hospedagem web com cPanel, ideal para sites, blogs e aplicações web com segurança e desempenho de primeira linha.",
+ link: "/services/webhosting",
+ icon: FiGlobe,
+ category: "web",
+ features: [
+ "Painel de Controle cPanel",
+ "Armazenamento SSD",
+ "Instalação WordPress com 1 Clique",
+ "Certificados SSL Gratuitos",
+ "Proteção DDoS e Firewall",
+ "Suporte Técnico 24/7",
+ "Backups Diários",
+ ],
+ },
+
+ // Categoria: Cloud
+ {
+ title: "Blob Storage",
+ description:
+ "Armazenamento em nuvem escalável para dados não estruturados, com acesso rápido e seguro.",
+ link: "/services/blob",
+ icon: FiCloud,
+ category: "cloud",
+ features: [
+ "Armazenamento Escalável",
+ "Preços Acessíveis",
+ "Alta Disponibilidade",
+ "Fácil Integração via API",
+ "Segurança Avançada",
+ "Acesso Global",
+ "Redundância de Dados",
+ ],
+ },
];
export default function ServicesPage() {
return (
-
+ {/* Hero Section */}
+
Nossos Serviços
-
- Explore nossa gama de soluções de hospedagem premium, projetadas
+
+ Explore nossa gama completa de soluções de hospedagem premium, projetadas
para oferecer a máxima performance, segurança e confiabilidade para
- seus projetos.
+ seus projetos. Da hospedagem de games a serviços em nuvem, temos tudo para você.
Nossa equipe está pronta para ajudar você a encontrar a solução
- perfeita.
+ perfeita para seu negócio ou projeto. Entre em contato hoje mesmo!
-
- Fale Conosco
-
+
+
+
+ Fale com um Especialista
+
+
+ Conheça Nossas Parcerias
+
+
+
+
+
+
+ Pagamento Seguro
+
+
+
+ Ativação Imediata
+
+
+
+ Garantia de Satisfação
+
+
diff --git a/src/app/services/samp/metadata.ts b/src/app/services/samp/metadata.ts
new file mode 100644
index 0000000..7f705f5
--- /dev/null
+++ b/src/app/services/samp/metadata.ts
@@ -0,0 +1,9 @@
+import { Metadata } from "next";
+
+export const metadata: Metadata = {
+ title: "Hospedagem de Servidores SAMP | FireHosting",
+ description:
+ "Servidores San Andreas Multiplayer de alta performance com proteção DDoS e hardware de ponta. Ideal para comunidades de roleplay e servidores de diversão.",
+ keywords:
+ "hospedagem samp, servidor samp, samp hosting, san andreas multiplayer, samp brasil, samp server, samp roleplay, samp gamer",
+};
diff --git a/src/app/services/samp/page.tsx b/src/app/services/samp/page.tsx
new file mode 100644
index 0000000..aaf0f79
--- /dev/null
+++ b/src/app/services/samp/page.tsx
@@ -0,0 +1,429 @@
+"use client";
+
+import { useState } from "react";
+import Link from "next/link";
+import Image from "next/image";
+import {
+ FiServer,
+ FiShield,
+ FiCpu,
+ FiDownload,
+ FiClock,
+ FiHeart,
+ FiCheck,
+ FiHardDrive,
+ FiGlobe,
+ FiUsers,
+ FiZap,
+ FiHeadphones,
+ FiCode,
+ FiDatabase,
+ FiTrendingUp,
+ FiMap,
+ FiThumbsUp,
+ FiFileText,
+} from "react-icons/fi";
+import SampPlans from "@/components/samp/SampPlans";
+
+const benefits = [
+ {
+ icon: FiCpu,
+ title: "Processadores de Última Geração",
+ description:
+ "Servidores equipados com processadores AMD Ryzen 9 de alta frequência, garantindo máximo desempenho para seu servidor SAMP.",
+ },
+ {
+ icon: FiShield,
+ title: "Proteção DDoS Inclusa",
+ description:
+ "Todos os planos contam com proteção contra ataques DDoS para manter seu servidor sempre online e seguro.",
+ },
+ {
+ icon: FiGlobe,
+ title: "Suporte a Plugins e Filterscripts",
+ description:
+ "Total compatibilidade com plugins, filterscripts e recursos populares para criar o servidor SAMP dos seus sonhos.",
+ },
+ {
+ icon: FiClock,
+ title: "Uptime de 99.9%",
+ description:
+ "Garantimos a mais alta disponibilidade com nossa infraestrutura robusta e redundante.",
+ },
+ {
+ icon: FiHeart,
+ title: "Suporte Técnico 24/7",
+ description:
+ "Nossa equipe de especialistas está sempre disponível para ajudar com qualquer questão sobre seu servidor SAMP.",
+ },
+];
+
+const faqs = [
+ {
+ question: "O que é um servidor SAMP?",
+ answer:
+ "San Andreas Multiplayer (SAMP) é uma modificação multiplayer para o jogo Grand Theft Auto: San Andreas que permite jogar online com outras pessoas. Um servidor SAMP hospeda esses jogos multiplayer, permitindo que você crie sua própria comunidade de jogadores.",
+ },
+ {
+ question: "Como funciona a instalação de plugins e filterscripts?",
+ answer:
+ "Nossa plataforma permite instalar plugins e filterscripts com facilidade através do painel de controle. Você pode fazer upload de arquivos, editar configurações e reiniciar o servidor com apenas alguns cliques.",
+ },
+ {
+ question: "Quantos jogadores meu servidor SAMP pode suportar?",
+ answer:
+ "A capacidade de jogadores depende do plano escolhido. Oferecemos opções que vão desde servidores pequenos para grupos de amigos até grandes comunidades com centenas de jogadores simultâneos.",
+ },
+ {
+ question: "É possível migrar meu servidor SAMP de outro provedor?",
+ answer:
+ "Sim! Oferecemos migração gratuita para novos clientes. Nossa equipe cuidará de todo o processo para garantir uma transição suave sem perda de dados ou configurações.",
+ },
+ {
+ question: "Vocês oferecem suporte para configurar meu servidor SAMP?",
+ answer:
+ "Sim, nossa equipe de suporte está disponível 24/7 para ajudar com a configuração do seu servidor, instalação de plugins e solução de problemas técnicos.",
+ },
+];
+
+export default function SampHostingPage() {
+ const [showFaq, setShowFaq] = useState(null);
+
+ const toggleFaq = (index: number) => {
+ if (showFaq === index) {
+ setShowFaq(null);
+ } else {
+ setShowFaq(index);
+ }
+ };
+
+ const features = [
+ {
+ title: "Painel de Controle Intuitivo",
+ description: "Gerencie seu servidor SAMP com facilidade através do nosso painel personalizado.",
+ icon: FiServer,
+ },
+ {
+ title: "Backups Diários",
+ description: "Seus dados sempre seguros com backups automáticos diários inclusos em todos os planos.",
+ icon: FiDatabase,
+ },
+ {
+ title: "Instalador de Plugins",
+ description: "Instale plugins e recursos populares com apenas um clique através do nosso instalador exclusivo.",
+ icon: FiDownload,
+ },
+ {
+ title: "Monitoramento 24/7",
+ description: "Servidores monitorados 24 horas por dia para garantir máxima disponibilidade.",
+ icon: FiTrendingUp,
+ },
+ {
+ title: "Banco de Dados MySQL",
+ description: "Integração completa com MySQL para scripts avançados e sistemas de roleplay.",
+ icon: FiFileText,
+ },
+ {
+ title: "Compatibilidade Total",
+ description: "100% compatível com todos os recursos, plugins e scripts SAMP populares no mercado.",
+ icon: FiCode,
+ },
+ ];
+
+ const testimonials = [
+ {
+ name: "Ricardo Oliveira",
+ role: "Fundador do Brasil RP",
+ avatar: "https://i.pravatar.cc/100?img=11",
+ content:
+ "Escolhi a FireHosting para meu servidor SAMP e foi a melhor decisão. Zero lag mesmo com mais de 100 jogadores online, painel de controle incrível e suporte sempre pronto para ajudar.",
+ },
+ {
+ name: "Mariana Costa",
+ role: "Administradora do City Life RP",
+ avatar: "https://i.pravatar.cc/100?img=15",
+ content:
+ "Desde que migramos para a FireHosting, os problemas de conexão acabaram. A instalação de plugins é super fácil e o desempenho do servidor melhorou significativamente.",
+ },
+ {
+ name: "Lucas Mendonça",
+ role: "Desenvolvedor SAMP",
+ avatar: "https://i.pravatar.cc/100?img=13",
+ content:
+ "Como desenvolvedor, preciso de um ambiente confiável para meus scripts. A FireHosting oferece tudo que preciso: estabilidade, suporte técnico excelente e um painel que facilita meu trabalho.",
+ },
+ ];
+
+ return (
+
+ {/* Hero Section */}
+
+
+
+
+
+
+
+
+
+
+
+ SAMP Hosting Premium
+
+
+
+ Hospedagem de{" "}
+ San Andreas Multiplayer{" "}
+ de Alta Performance
+
+
+
+ Servidores SAMP otimizados para jogabilidade suave, com proteção contra ataques e
+ hardware de última geração. Ideal para comunidades de roleplay ou servidores de diversão.
+
+
+
+
+ Ver Planos SAMP
+
+
+ Falar com Especialista
+
+
+ Oferecemos tudo que você precisa para criar e gerenciar um servidor SAMP de sucesso
+
+
+
+
+ {features.map((feature, index) => (
+
+
+
+
+
{feature.title}
+
{feature.description}
+
+ ))}
+
+
+
+
+
+
+
+
+
Precisa de um Servidor SAMP Personalizado?
+
+ Se você tem necessidades específicas ou quer um servidor otimizado para o seu projeto de roleplay,
+ nossa equipe pode criar uma solução sob medida para você.
+
+
+
+
+ Solicitar Orçamento
+
+
+
+
+
+
+
+ {/* Planos Section */}
+
+
+
+
+ Planos de Hospedagem SAMP
+
+
+ Escolha o plano ideal para o seu servidor SAMP. Todos incluem proteção DDoS,
+ painel de controle intuitivo e suporte técnico especializado.
+
+
+
+
+
+
+
+ Precisa de mais slots ou recursos?
+
+ Fale conosco para um plano personalizado
+
+
+
+
+
+
+ {/* Depoimentos */}
+
+
+
+
+ O que nossos Clientes Dizem
+
+
+ Veja como a FireHosting tem ajudado comunidades SAMP a crescer e prosperar
+
+
+
+
+ {testimonials.map((testimonial, index) => (
+
+
+
+
+
{testimonial.name}
+
{testimonial.role}
+
+
+
"{testimonial.content}"
+
+ ))}
+
+
+
+
+ {/* FAQ Section */}
+
+
+
+
+ Perguntas Frequentes
+
+
+ Tire suas dúvidas sobre nossos serviços de hospedagem SAMP
+
+
+
+
+ {faqs.map((faq, index) => (
+
toggleFaq(index)}
+ >
+
+
{faq.question}
+
+
+
+ {showFaq === index && (
+
+
{faq.answer}
+
+ )}
+
+ ))}
+
+
+
+
+ {/* CTA Section */}
+
+
+
+
+ Pronto para lançar seu servidor{" "}
+ SAMP?
+
+
+ Tenha seu servidor online em minutos com nossa ativação instantânea.
+ Hardware de ponta e suporte especializado para sua comunidade.
+
+
+
+ Contratar Agora
+
+
+ Tirar Dúvidas
+
+
+
+
+
+
+ );
+}
diff --git a/src/app/services/webhosting/metadata.ts b/src/app/services/webhosting/metadata.ts
new file mode 100644
index 0000000..c347d40
--- /dev/null
+++ b/src/app/services/webhosting/metadata.ts
@@ -0,0 +1,9 @@
+import { Metadata } from "next";
+
+export const metadata: Metadata = {
+ title: "Hospedagem de Sites com cPanel | FireHosting",
+ description:
+ "Hospedagem de sites com cPanel de alta performance, servidores SSD NVMe, SSL grátis e suporte 24/7. Ideal para sites pessoais, blogs e empresas.",
+ keywords:
+ "hospedagem de sites, cpanel, webhosting, ssl grátis, hospedagem brasil, hospedagem wordpress, hospedagem com cpanel, hospedagem ssd",
+};
diff --git a/src/app/services/webhosting/page.tsx b/src/app/services/webhosting/page.tsx
new file mode 100644
index 0000000..706524a
--- /dev/null
+++ b/src/app/services/webhosting/page.tsx
@@ -0,0 +1,716 @@
+"use client";
+
+import { useState } from "react";
+import Link from "next/link";
+import Image from "next/image";
+import {
+ FiServer,
+ FiGlobe,
+ FiLock,
+ FiDatabase,
+ FiZap,
+ FiMail,
+ FiCpu,
+ FiRefreshCw,
+ FiShield,
+ FiAward,
+ FiThumbsUp,
+ FiHeart,
+ FiClock,
+ FiBox,
+ FiHeadphones,
+ FiCheck,
+} from "react-icons/fi";
+import WebhostingPlans from "@/components/webhosting/WebhostingPlans";
+
+const features = [
+ {
+ icon: FiZap,
+ title: "Performance de ponta",
+ description: "Servidores equipados com discos SSD NVMe para carregamento ultrarrápido de sites.",
+ },
+ {
+ icon: FiLock,
+ title: "SSL Grátis",
+ description: "Certificado SSL grátis em todos os planos para manter seu site seguro.",
+ },
+ {
+ icon: FiGlobe,
+ title: "cPanel Completo",
+ description: "Interface intuitiva para gerenciar seu site, com ferramentas e recursos avançados.",
+ },
+ {
+ icon: FiRefreshCw,
+ title: "Backup Diário",
+ description: "Seus dados sempre protegidos com backups automáticos diários.",
+ },
+ {
+ icon: FiHeart,
+ title: "Migração Gratuita",
+ description: "Transferimos seu site de outro provedor sem custos adicionais.",
+ },
+];
+
+const advantages = [
+ {
+ icon: FiMail,
+ title: "E-mails Profissionais",
+ description: "Crie e-mails com seu domínio para uma presença online profissional.",
+ },
+ {
+ icon: FiBox,
+ title: "Instalador em 1-Clique",
+ description: "Instale WordPress, Joomla, PrestaShop e mais de 400 aplicativos com um clique.",
+ },
+ {
+ icon: FiShield,
+ title: "Proteção Anti-Malware",
+ description: "Varredura diária para proteger seu site contra malwares e ameaças.",
+ },
+ {
+ icon: FiCpu,
+ title: "Recursos Dedicados",
+ description: "CPU e RAM garantidos para seu site, sem compartilhamento excessivo.",
+ },
+ {
+ icon: FiAward,
+ title: "99.9% de Uptime",
+ description: "Garantia de disponibilidade para manter seu site sempre online.",
+ },
+ {
+ icon: FiHeadphones,
+ title: "Suporte 24/7",
+ description: "Equipe técnica especializada disponível 24 horas todos os dias.",
+ },
+];
+
+const faqs = [
+ {
+ question: "O que é hospedagem de sites com cPanel?",
+ answer: "Hospedagem de sites com cPanel é um serviço que disponibiliza espaço em servidores para armazenar os arquivos do seu site, utilizando o cPanel como painel de controle. O cPanel é uma interface gráfica que facilita o gerenciamento do seu site, e-mails, bancos de dados e outros recursos sem necessidade de conhecimento técnico avançado."
+ },
+ {
+ question: "Posso migrar meu site de outro provedor?",
+ answer: "Sim! Oferecemos migração gratuita para todos os clientes. Nossa equipe técnica cuidará de todo o processo de transferência, garantindo que seu site, e-mails e bancos de dados sejam migrados corretamente e sem tempo de inatividade."
+ },
+ {
+ question: "Quanto tempo leva para ativar minha hospedagem?",
+ answer: "Sua hospedagem é ativada instantaneamente após a confirmação do pagamento. Em poucos minutos você já terá acesso ao cPanel e poderá começar a configurar seu site."
+ },
+ {
+ question: "Os planos incluem certificado SSL?",
+ answer: "Sim, todos os nossos planos incluem certificado SSL Let's Encrypt gratuito, que pode ser instalado facilmente através do cPanel. O certificado SSL garante a segurança do seu site e melhora seu posicionamento no Google."
+ },
+ {
+ question: "Qual é a diferença entre os planos de hospedagem?",
+ answer: "Os planos variam principalmente em termos de espaço em disco, número de sites que podem ser hospedados, número de bancos de dados e contas de e-mail disponíveis. Os planos mais avançados também oferecem mais recursos de processamento e memória."
+ },
+ {
+ question: "Posso fazer upgrade do meu plano no futuro?",
+ answer: "Sim, você pode fazer upgrade do seu plano a qualquer momento através da área do cliente. O processo é simples e não causa interrupção no funcionamento do seu site."
+ },
+ {
+ question: "Vocês oferecem garantia de satisfação?",
+ answer: "Sim, oferecemos garantia de 15 dias. Se você não estiver satisfeito com nossos serviços, reembolsamos 100% do valor pago, sem perguntas."
+ }
+];
+
+const testimonials = [
+ {
+ name: "Fernanda Lima",
+ company: "Agência Digital Creativa",
+ avatar: "https://i.pravatar.cc/100?img=47",
+ content: "Migramos todos os nossos sites para a FireHosting e foi a melhor decisão que tomamos. A velocidade de carregamento melhorou significativamente e o suporte técnico é excepcional, sempre disponível quando precisamos.",
+ rating: 5
+ },
+ {
+ name: "Roberto Almeida",
+ company: "Loja Virtual TechStore",
+ avatar: "https://i.pravatar.cc/100?img=53",
+ content: "Minha loja virtual nunca performou tão bem. Desde que mudei para a FireHosting, as vendas aumentaram pois os clientes têm uma experiência muito melhor no site. Os recursos do cPanel facilitam muito o gerenciamento.",
+ rating: 5
+ },
+ {
+ name: "Camila Santos",
+ company: "Blog Viagem & Aventura",
+ avatar: "https://i.pravatar.cc/100?img=32",
+ content: "Como blogueira, precisava de uma hospedagem confiável e que não me desse dor de cabeça. A FireHosting superou minhas expectativas. Instalação do WordPress em um clique e meu blog nunca fica fora do ar.",
+ rating: 4
+ }
+];
+
+export default function WebhostingPage() {
+ const [activeTab, setActiveTab] = useState("wordpress");
+ const [activeFaq, setActiveFaq] = useState(null);
+
+ const toggleFaq = (index: number) => {
+ if (activeFaq === index) {
+ setActiveFaq(null);
+ } else {
+ setActiveFaq(index);
+ }
+ };
+
+ return (
+
+ {/* Hero Section */}
+
+
+
+
+
+
+
+
+
+
+
+ Hospedagem Premium com cPanel
+
+
+
+ Hospedagem de Sites Rápida e Confiável com cPanel
+
+
+
+ Servidores SSD NVMe, certificado SSL grátis, painel cPanel intuitivo e suporte
+ técnico especializado 24/7. Tudo que você precisa para o sucesso do seu site.
+
+
+
+
+ Ver Planos de Hospedagem
+
+
+ Falar com um Especialista
+
+