Compare commits

..

33 Commits

Author SHA1 Message Date
Arthur Wambst
fe4a5b0841
fix for pelican desc 2025-09-08 18:20:16 +02:00
Arthur Wambst
976277696c
hotfix 2025-09-08 18:20:16 +02:00
Arthur Wambst
9653dfa973
logos for english 2025-09-08 18:20:16 +02:00
Arthur Wambst
46667b9b94
a lot of logos for fr page 2025-09-08 18:20:16 +02:00
Arthur Wambst
9f4b45a2ce
small fix to avoid to build twice 2025-09-08 18:20:16 +02:00
Arthur Wambst
f0c0039712
fix: build and changed main subtitle 2025-09-08 18:20:15 +02:00
sahamone
f286446a2e
refactoring & UI improvment 2025-09-08 18:20:15 +02:00
Arthur Wambst
312ce16381
fix: changed on push and action name 2025-09-08 18:20:15 +02:00
Arthur Wambst
5a91f7a994
fix: discord link to count website joins 2025-09-08 18:20:15 +02:00
Arthur Wambst
49cda2e8d2
wip: started to add translations 2025-09-08 18:20:15 +02:00
Arthur Wambst
bfe044a36e
init 2025-09-08 18:20:15 +02:00
Arthur Wambst
e736746336
fix: ssp desc 2025-09-08 18:20:15 +02:00
Arthur Wambst
4f5c18d488
fix: now it build, not sure why 2025-09-08 18:20:15 +02:00
Arthur Wambst
50893f1a92
merging 2025-09-08 18:19:50 +02:00
Arthur Wambst
6b00fbf8e2
feat: added actions tests 2025-09-08 18:18:59 +02:00
Arthur Wambst
f52f7e9afe
test in cd 2025-09-08 18:18:59 +02:00
Arthur Wambst
d1df8d75ce
test in cd 2025-09-08 18:18:59 +02:00
Arthur Wambst
0324a8ae1a
test in cd 2025-09-08 18:18:59 +02:00
Arthur Wambst
f01566f826
test in cd 2025-09-08 18:18:59 +02:00
Arthur Wambst
88bc33ec3e
test in cd 2025-09-08 18:18:59 +02:00
Arthur Wambst
d0ebafaeab
test in cd 2025-09-08 18:18:59 +02:00
Arthur Wambst
cae1d108c2
test in cd 2025-09-08 18:18:59 +02:00
Arthur Wambst
86db79779b
test in cd 2025-09-08 18:18:59 +02:00
Arthur Wambst
b2113df525
fix: forgot npm install 2025-09-08 18:18:58 +02:00
Arthur Wambst
358fbcdeec
fix: wrong path in cd 2025-09-08 18:18:58 +02:00
Arthur Wambst
dfe1942ecc
fix: wrong actions file path 2025-09-08 18:18:58 +02:00
Arthur Wambst
e183284e8b
tests actions 2025-09-08 18:18:58 +02:00
Arthur Wambst
d2d665f42e
changed some content 2025-09-08 18:18:58 +02:00
sahamone
bbc8588c6f
Add new links
Ajout de nouveaux services au site web
2025-09-08 18:18:58 +02:00
11bf2b7466 Merge pull request 'fix discord' (#32) from fix-discord into main
Reviewed-on: #32
2025-09-05 15:38:31 +02:00
Arthur Wambst
7fd83b16bf
fix discord 2025-09-05 15:33:25 +02:00
64ec67aebd Merge pull request 'updating main with the current dev version' (#22) from dev into main
Reviewed-on: #22
2025-06-02 21:53:20 +02:00
86d17cbbc0 Merge pull request 'Updating main with website 1.0' (#14) from dev into main
Reviewed-on: #14
2025-05-31 20:01:25 +02:00
10 changed files with 129 additions and 119 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

View File

@ -5,14 +5,12 @@ import type { Service } from '../../types/service';
interface ServiceCardProps { interface ServiceCardProps {
service: Service; service: Service;
onServiceClick: (service: Service) => void; onServiceClick: (service: Service) => void;
discoverFeaturesText: string;
className?: string; className?: string;
} }
export const ServiceCard: React.FC<ServiceCardProps> = ({ export const ServiceCard: React.FC<ServiceCardProps> = ({
service, service,
onServiceClick, onServiceClick,
discoverFeaturesText,
className = '', className = '',
}) => { }) => {
const cardClasses = mergeClasses( const cardClasses = mergeClasses(
@ -31,7 +29,16 @@ export const ServiceCard: React.FC<ServiceCardProps> = ({
<div className={cardClasses} onClick={handleClick}> <div className={cardClasses} onClick={handleClick}>
{/* Icon */} {/* Icon */}
<div className="mb-6 sm:mb-8 w-20 h-20 sm:w-24 sm:h-24 bg-gradient-to-br from-banquise-blue to-banquise-blue-light rounded-2xl flex items-center justify-center text-3xl sm:text-4xl shadow-lg group-hover:scale-110 transition-transform duration-300 mx-auto"> <div className="mb-6 sm:mb-8 w-20 h-20 sm:w-24 sm:h-24 bg-gradient-to-br from-banquise-blue to-banquise-blue-light rounded-2xl flex items-center justify-center text-3xl sm:text-4xl shadow-lg group-hover:scale-110 transition-transform duration-300 mx-auto">
{service.icon} <img
src={service.image}
alt={service.icon}
className="h-10 sm:h-12 lg:h-14 w-auto relative z-10 transition-transform duration-300 group-hover:scale-130 m-10"
style={
{
filter: 'drop-shadow(0 0 12px rgba(168, 218, 255, 0.4))',
}
}
/>
</div> </div>
{/* Service name */} {/* Service name */}
@ -40,15 +47,10 @@ export const ServiceCard: React.FC<ServiceCardProps> = ({
</h3> </h3>
{/* Short description */} {/* Short description */}
<p className="text-banquise-gray/80 leading-relaxed mb-6 sm:mb-8 text-center text-sm sm:text-base"> <p className="text-banquise-gray/80 leading-relaxed text-center text-sm sm:text-base">
{service.description.split('.')[0]}. {service.description.split('.')[0]}.
</p> </p>
{/* CTA */}
<div className="flex items-center justify-center text-banquise-blue-light font-bold group-hover:text-banquise-blue-lightest transition-colors duration-300 text-sm sm:text-base">
<span className="text-center">{discoverFeaturesText}</span>
<span className="ml-2 text-lg transition-transform duration-300 group-hover:translate-x-2"></span>
</div>
{/* Hover effect */} {/* Hover effect */}
<div className="absolute inset-0 bg-gradient-to-br from-banquise-blue-lightest/10 to-banquise-blue/5 rounded-2xl opacity-0 group-hover:opacity-100 transition-opacity duration-300 pointer-events-none"></div> <div className="absolute inset-0 bg-gradient-to-br from-banquise-blue-lightest/10 to-banquise-blue/5 rounded-2xl opacity-0 group-hover:opacity-100 transition-opacity duration-300 pointer-events-none"></div>

View File

@ -51,7 +51,11 @@ export const Footer: React.FC = () => (
className="w-10 h-10 bg-banquise-blue/20 hover:bg-banquise-blue/30 rounded-full flex items-center justify-center transition-all duration-200 hover:scale-110" className="w-10 h-10 bg-banquise-blue/20 hover:bg-banquise-blue/30 rounded-full flex items-center justify-center transition-all duration-200 hover:scale-110"
aria-label="Discord" aria-label="Discord"
> >
<span className="text-banquise-blue-lightest text-sm">💬</span> <span className="text-banquise-blue-lightest text-sm">
<svg className="w-4 h-4 lg:w-5 lg:h-5" fill="currentColor" viewBox="0 0 24 24">
<path d="M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.211.375-.445.864-.608 1.25a18.27 18.27 0 0 0-5.487 0 12.64 12.64 0 0 0-.617-1.25.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057 19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028c.462-.63.874-1.295 1.226-1.994a.076.076 0 0 0-.041-.106 13.107 13.107 0 0 1-1.872-.892.077.077 0 0 1-.008-.128 10.2 10.2 0 0 0 .372-.292.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127 12.299 12.299 0 0 1-1.873.892.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.839 19.839 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03z"/>
</svg>
</span>
</a> </a>
<a <a
href={URLS.contact.email} href={URLS.contact.email}
@ -66,12 +70,12 @@ export const Footer: React.FC = () => (
{/* Bottom Bar */} {/* Bottom Bar */}
<div className="flex flex-col sm:flex-row justify-between items-center gap-4 pt-6 border-t border-banquise-blue-lightest/5"> <div className="flex flex-col sm:flex-row justify-between items-center gap-4 pt-6 border-t border-banquise-blue-lightest/5">
<p className="text-banquise-gray/60 text-xs text-center sm:text-left"> <p className="text-banquise-gray/60 text-xs text-center sm:text-left">
© 2024 {SITE_CONFIG.name}. Hébergement communautaire pour développeurs et gamers. © 2025 {SITE_CONFIG.name}. Hébergement communautaire pour développeurs et gamers.
</p> </p>
<div className="flex items-center gap-4 text-xs text-banquise-gray/60"> <div className="flex items-center gap-4 text-xs text-banquise-gray/60">
<span>Fait avec par la communauté</span> <span>Fait avec par Banquise</span>
<div className="w-1 h-1 bg-banquise-gray/40 rounded-full"></div> <div className="w-1 h-1 bg-banquise-gray/40 rounded-full"></div>
<span>EPITA 2024</span> <span>EPITA 2025</span>
</div> </div>
</div> </div>
</div> </div>

View File

@ -96,10 +96,10 @@ export const Navigation: React.FC<NavigationProps> = ({ translations, languageSw
> >
<div className={`absolute inset-0 ${commonStyles.gradients.discordHover} opacity-0 group-hover:opacity-100 transition-opacity duration-300`}></div> <div className={`absolute inset-0 ${commonStyles.gradients.discordHover} opacity-0 group-hover:opacity-100 transition-opacity duration-300`}></div>
<div className="relative z-10 flex items-center space-x-2"> <div className="relative z-10 flex items-center space-x-2">
<svg className="w-4 h-4 lg:w-5 lg:h-5" fill="currentColor" viewBox="0 0 24 24"> <svg className="w-4 h-4 lg:w-5 lg:h-5" fill="currentColor" viewBox="0 0 24 24">
<path d="M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.211.375-.445.864-.608 1.25a18.27 18.27 0 0 0-5.487 0 12.64 12.64 0 0 0-.617-1.25.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057 19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028c.462-.63.874-1.295 1.226-1.994a.076.076 0 0 0-.041-.106 13.107 13.107 0 0 1-1.872-.892.077.077 0 0 1-.008-.128 10.2 10.2 0 0 0 .372-.292.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127 12.299 12.299 0 0 1-1.873.892.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.839 19.839 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03z"/> <path d="M20.317 4.37a19.791 19.791 0 0 0-4.885-1.515.074.074 0 0 0-.079.037c-.211.375-.445.864-.608 1.25a18.27 18.27 0 0 0-5.487 0 12.64 12.64 0 0 0-.617-1.25.077.077 0 0 0-.079-.037A19.736 19.736 0 0 0 3.677 4.37a.07.07 0 0 0-.032.027C.533 9.046-.32 13.58.099 18.057a.082.082 0 0 0 .031.057 19.9 19.9 0 0 0 5.993 3.03.078.078 0 0 0 .084-.028c.462-.63.874-1.295 1.226-1.994a.076.076 0 0 0-.041-.106 13.107 13.107 0 0 1-1.872-.892.077.077 0 0 1-.008-.128 10.2 10.2 0 0 0 .372-.292.074.074 0 0 1 .077-.01c3.928 1.793 8.18 1.793 12.062 0a.074.074 0 0 1 .078.01c.12.098.246.198.373.292a.077.077 0 0 1-.006.127 12.299 12.299 0 0 1-1.873.892.077.077 0 0 0-.041.107c.36.698.772 1.362 1.225 1.993a.076.076 0 0 0 .084.028 19.839 19.839 0 0 0 6.002-3.03.077.077 0 0 0 .032-.054c.5-5.177-.838-9.674-3.549-13.66a.061.061 0 0 0-.031-.03z"/>
</svg> </svg>
<span>Discord</span> <span>Discord</span>
</div> </div>
</a> </a>
<a <a

View File

@ -13,8 +13,7 @@ interface ServicesSectionProps {
export const ServicesSection: React.FC<ServicesSectionProps> = ({ export const ServicesSection: React.FC<ServicesSectionProps> = ({
services, services,
onServiceClick, onServiceClick
translations
}) => ( }) => (
<section id="services" className="relative z-2 py-12 sm:py-16 md:py-20 w-full max-w-6xl mx-auto px-4 sm:px-6 md:px-8"> <section id="services" className="relative z-2 py-12 sm:py-16 md:py-20 w-full max-w-6xl mx-auto px-4 sm:px-6 md:px-8">
<div className="w-20 h-1 bg-gradient-to-r from-banquise-blue-lightest to-banquise-blue mx-auto mb-6 sm:mb-8 rounded-full"></div> <div className="w-20 h-1 bg-gradient-to-r from-banquise-blue-lightest to-banquise-blue mx-auto mb-6 sm:mb-8 rounded-full"></div>
@ -31,7 +30,6 @@ export const ServicesSection: React.FC<ServicesSectionProps> = ({
key={service.name} key={service.name}
service={service} service={service}
onServiceClick={onServiceClick} onServiceClick={onServiceClick}
discoverFeaturesText={translations.discoverFeatures}
/> />
))} ))}
</div> </div>

View File

@ -1,12 +1,16 @@
import type { Translation } from '../../types/i18n'; import type { Translation } from '../../types/i18n';
import { URLS } from '../../config/constants'; import { URLS } from '../../config/constants';
import logoGitea from '/src/assets/Gitea_Logo.png';
import logoWiki from '/src/assets/wikijs.png';
import logoPelican from '/src/assets/pelican.png';
import logoOpencloud from '/src/assets/opencloud_logo_white.png';
export const en: Translation = { export const en: Translation = {
services: [ services: [
{ {
name: "Wiki", name: "Wiki",
url: URLS.services.wiki, url: URLS.services.wiki,
image: "/path/to/wiki-image.jpg", image: logoWiki,
icon: "📚", icon: "📚",
description: "Collaborative technical documentation and knowledge sharing platform. Create, edit and organize your guides, tutorials and documentation as a team with integrated versioning system.", description: "Collaborative technical documentation and knowledge sharing platform. Create, edit and organize your guides, tutorials and documentation as a team with integrated versioning system.",
features: [ features: [
@ -23,7 +27,7 @@ export const en: Translation = {
{ {
name: "Gitea", name: "Gitea",
url: URLS.services.gitea, url: URLS.services.gitea,
image: "/path/to/gitea-image.jpg", image: logoGitea,
icon: "🔧", icon: "🔧",
description: "Lightweight and performant self-hosted Git service for your development projects. Open-source alternative to GitHub with all essential features for managing your repositories.", description: "Lightweight and performant self-hosted Git service for your development projects. Open-source alternative to GitHub with all essential features for managing your repositories.",
features: [ features: [
@ -38,13 +42,12 @@ export const en: Translation = {
] ]
}, },
{ {
name: "Gaming Panel", name: "Pelican",
url: URLS.services.panel, url: URLS.services.pelican,
image: "/path/to/panel-image.jpg", image: logoPelican,
icon: "🎮", icon: "🐧",
description: "Centralized management interface for all your game servers. Easily deploy, configure and monitor your Minecraft, CS2, Garry's Mod and many other servers.", description: "Game server management with dedicated servers (Minecraft, CS2, Palworld, and many others)",
features: [ features: [
"Support for 20+ popular games (Minecraft, CS2, GMod...)",
"One-click deployment with pre-configured templates", "One-click deployment with pre-configured templates",
"Real-time administration console", "Real-time administration console",
"File management with integrated editor", "File management with integrated editor",
@ -54,19 +57,33 @@ export const en: Translation = {
] ]
}, },
{ {
name: "Pelican", name: "Password Change",
url: URLS.services.pelican, url: URLS.services.ssp,
image: "/path/to/pelican-image.jpg", image: "/path/to/ssp-image.jpg",
icon: "🐧", icon: "🔐",
description: "Ultra-fast and flexible Python static site generator. Create blogs, portfolios or documentation sites with optimal performance and simplified deployment.", description: "Secure interface for autonomous password management. Easily change your credentials safely.",
features: [ features: [
"Game server management with dedicated servers (Minecraft, CS2, Palworld...)", "Secure interface to change your password",
"One-click deployment with pre-configured templates", "Password complexity validation",
"Real-time administration console", "Email notifications of changes",
"File management with integrated editor", "Modification history"
"Performance and resource monitoring", ]
"Automatic backup system", },
"Automated task scheduler" {
name: "OpenCloud",
url: URLS.services.opencloud,
image: logoOpencloud,
icon: "☁️",
description: "Open-source collaborative cloud platform for file storage, sharing and synchronization. Free alternative to Google Drive with full control over your data.",
features: [
"Secure and encrypted cloud storage",
"Multi-device synchronization",
"File sharing with secure links",
"Collaborative document editing",
"Automatic file versioning",
"Native mobile applications",
"Integration with external tools",
"Geo-redundant data backup"
] ]
}, },
{ {
@ -86,6 +103,22 @@ export const en: Translation = {
"Archive of decisions and minutes" "Archive of decisions and minutes"
] ]
}, },
{
name: "Gaming Panel",
url: URLS.services.panel,
image: "/path/to/panel-image.jpg",
icon: "🎮",
description: "Centralized management interface for all your game servers. Easily deploy, configure and monitor your Minecraft, CS2, Garry's Mod and many other servers.",
features: [
"Support for 20+ popular games (Minecraft, CS2, GMod...)",
"One-click deployment with pre-configured templates",
"Real-time administration console",
"File management with integrated editor",
"Performance and resource monitoring",
"Automatic backup system",
"Automated task scheduler"
]
},
{ {
name: "Mails", name: "Mails",
url: URLS.services.mails, url: URLS.services.mails,
@ -102,36 +135,6 @@ export const en: Translation = {
"Communication encryption", "Communication encryption",
"Automatic data backup" "Automatic data backup"
] ]
},
{
name: "Password Change",
url: URLS.services.ssp,
image: "/path/to/ssp-image.jpg",
icon: "🔐",
description: "Secure interface for autonomous password management. Easily change your credentials safely.",
features: [
"Secure interface to change your password",
"Password complexity validation",
"Email notifications of changes",
"Modification history"
]
},
{
name: "OpenCloud",
url: URLS.services.opencloud,
image: "/path/to/opencloud-image.jpg",
icon: "☁️",
description: "Open-source collaborative cloud platform for file storage, sharing and synchronization. Free alternative to Google Drive with full control over your data.",
features: [
"Secure and encrypted cloud storage",
"Multi-device synchronization",
"File sharing with secure links",
"Collaborative document editing",
"Automatic file versioning",
"Native mobile applications",
"Integration with external tools",
"Geo-redundant data backup"
]
} }
], ],
hero: { hero: {

View File

@ -1,12 +1,16 @@
import type { Translation } from '../../types/i18n'; import type { Translation } from '../../types/i18n';
import { URLS } from '../../config/constants'; import { URLS } from '../../config/constants';
import logoGitea from '/src/assets/Gitea_Logo.png';
import logoWiki from '/src/assets/wikijs.png';
import logoPelican from '/src/assets/pelican.png';
import logoOpencloud from '/src/assets/opencloud_logo_white.png';
export const fr: Translation = { export const fr: Translation = {
services: [ services: [
{ {
name: "Wiki", name: "Wiki",
url: URLS.services.wiki, url: URLS.services.wiki,
image: "/path/to/wiki-image.jpg", image: logoWiki,
icon: "📚", icon: "📚",
description: "Plateforme collaborative de documentation technique et de partage de connaissances. Créez, modifiez et organisez vos guides, tutoriels et documentations en équipe avec un système de versioning intégré.", description: "Plateforme collaborative de documentation technique et de partage de connaissances. Créez, modifiez et organisez vos guides, tutoriels et documentations en équipe avec un système de versioning intégré.",
features: [ features: [
@ -23,7 +27,7 @@ export const fr: Translation = {
{ {
name: "Gitea", name: "Gitea",
url: URLS.services.gitea, url: URLS.services.gitea,
image: "/path/to/gitea-image.jpg", image: logoGitea,
icon: "🔧", icon: "🔧",
description: "Service Git auto-hébergé lightweight et performant pour vos projets de développement. Alternative open-source à GitHub avec toutes les fonctionnalités essentielles pour gérer vos repositories.", description: "Service Git auto-hébergé lightweight et performant pour vos projets de développement. Alternative open-source à GitHub avec toutes les fonctionnalités essentielles pour gérer vos repositories.",
features: [ features: [
@ -38,13 +42,12 @@ export const fr: Translation = {
] ]
}, },
{ {
name: "Panel Gaming", name: "Pelican",
url: URLS.services.panel, url: URLS.services.pelican,
image: "/path/to/panel-image.jpg", image: logoPelican,
icon: "🎮", icon: "🐧",
description: "Interface de gestion centralisée pour tous vos serveurs de jeux. Déployez, configurez et surveillez facilement vos serveurs Minecraft, CS2, Garry's Mod et bien d'autres.", description: "Gestion de serveurs de jeux avec serveurs dédiés (Minecraft, CS2, Palworld, et bien d'autres)",
features: [ features: [
"Support de 20+ jeux populaires (Minecraft, CS2, GMod...)",
"Déploiement en un clic avec templates préconfigurés", "Déploiement en un clic avec templates préconfigurés",
"Console d'administration en temps réel", "Console d'administration en temps réel",
"Gestion des fichiers avec éditeur intégré", "Gestion des fichiers avec éditeur intégré",
@ -54,19 +57,33 @@ export const fr: Translation = {
] ]
}, },
{ {
name: "Pelican", name: "Changement de mot de passe",
url: URLS.services.pelican, url: URLS.services.ssp,
image: "/path/to/pelican-image.jpg", image: "/path/to/ssp-image.jpg",
icon: "🐧", icon: "🔐",
description: "Générateur de sites statiques Python ultra-rapide et flexible. Créez des blogs, portfolios ou sites de documentation avec une performance optimale et un déploiement simplifié.", description: "Interface sécurisée pour la gestion autonome de vos mots de passe. Changez facilement vos identifiants en toute sécurité.",
features: [ features: [
"Gestion de serveurs de jeux avec serveurs dédiés (Minecraft, CS2, Palworld...)", "Interface sécurisée pour changer votre mot de passe",
"Déploiement en un clic avec templates préconfigurés", "Validation de la complexité des mots de passe",
"Console d'administration en temps réel", "Notifications par email des changements",
"Gestion des fichiers avec éditeur intégré", "Historique des modifications"
"Monitoring des performances et ressources", ]
"Système de sauvegarde automatique", },
"Planificateur de tâches automatisées" {
name: "OpenCloud",
url: URLS.services.opencloud,
image: logoOpencloud,
icon: "☁️",
description: "Plateforme cloud collaborative open-source pour le stockage, le partage et la synchronisation de fichiers. Alternative libre à Google Drive avec contrôle total sur vos données.",
features: [
"Stockage cloud sécurisé et chiffré",
"Synchronisation multi-appareils",
"Partage de fichiers avec liens sécurisés",
"Édition collaborative de documents",
"Versioning automatique des fichiers",
"Applications mobiles natives",
"Intégration avec outils externes",
"Sauvegarde géoredondante des données"
] ]
}, },
{ {
@ -86,6 +103,22 @@ export const fr: Translation = {
"Archive des décisions et procès-verbaux" "Archive des décisions et procès-verbaux"
] ]
}, },
{
name: "Panel Gaming",
url: URLS.services.panel,
image: "/path/to/panel-image.jpg",
icon: "🎮",
description: "Interface de gestion centralisée pour tous vos serveurs de jeux. Déployez, configurez et surveillez facilement vos serveurs Minecraft, CS2, Garry's Mod et bien d'autres.",
features: [
"Support de 20+ jeux populaires (Minecraft, CS2, GMod...)",
"Déploiement en un clic avec templates préconfigurés",
"Console d'administration en temps réel",
"Gestion des fichiers avec éditeur intégré",
"Monitoring des performances et ressources",
"Système de sauvegarde automatique",
"Planificateur de tâches automatisées"
]
},
{ {
name: "Mails", name: "Mails",
url: URLS.services.mails, url: URLS.services.mails,
@ -102,36 +135,6 @@ export const fr: Translation = {
"Chiffrement des communications", "Chiffrement des communications",
"Sauvegarde automatique des données" "Sauvegarde automatique des données"
] ]
},
{
name: "Changement de mot de passe",
url: URLS.services.ssp,
image: "/path/to/ssp-image.jpg",
icon: "🔐",
description: "Interface sécurisée pour la gestion autonome de vos mots de passe. Changez facilement vos identifiants en toute sécurité.",
features: [
"Interface sécurisée pour changer votre mot de passe",
"Validation de la complexité des mots de passe",
"Notifications par email des changements",
"Historique des modifications"
]
},
{
name: "OpenCloud",
url: URLS.services.opencloud,
image: "/path/to/opencloud-image.jpg",
icon: "☁️",
description: "Plateforme cloud collaborative open-source pour le stockage, le partage et la synchronisation de fichiers. Alternative libre à Google Drive avec contrôle total sur vos données.",
features: [
"Stockage cloud sécurisé et chiffré",
"Synchronisation multi-appareils",
"Partage de fichiers avec liens sécurisés",
"Édition collaborative de documents",
"Versioning automatique des fichiers",
"Applications mobiles natives",
"Intégration avec outils externes",
"Sauvegarde géoredondante des données"
]
} }
], ],
hero: { hero: {