Compare commits
2
Commits
073a739f10
...
71d1eda877
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
71d1eda877 | ||
|
|
a47afe20a0 |
@@ -23,6 +23,11 @@ http://62.234.49.39:8080 {
|
||||
|
||||
www.roncarve.com {
|
||||
encode zstd gzip
|
||||
header {
|
||||
Strict-Transport-Security "max-age=31536000; includeSubDomains"
|
||||
X-Content-Type-Options "nosniff"
|
||||
Referrer-Policy "strict-origin-when-cross-origin"
|
||||
}
|
||||
reverse_proxy roncarve-web:80
|
||||
}
|
||||
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
# roncarve-web
|
||||
|
||||
荣刻科技官方网站
|
||||
海南荣刻科技有限公司官方网站。
|
||||
|
||||
## 百度收录上线清单
|
||||
|
||||
站点已经在代码中提供以下收录基础文件:
|
||||
|
||||
- `https://www.roncarve.com/robots.txt`:允许 `Baiduspider` 和其他搜索引擎抓取。
|
||||
- `https://www.roncarve.com/sitemap.xml`:提交首页规范 URL。
|
||||
- 首页包含中文标题、描述、规范 URL、结构化数据和可见的“海南荣刻科技有限公司”全称。
|
||||
- `Caddyfile.server` 为主站配置 HTTPS 安全响应头;Caddy 会为 `www.roncarve.com` 自动申请和续期证书。
|
||||
|
||||
部署后请按以下顺序操作:
|
||||
|
||||
1. 确认域名已完成 ICP 备案,`https://www.roncarve.com/` 可从公网稳定访问,并检查 HTTP 会跳转到 HTTPS。
|
||||
2. 登录 [百度搜索资源平台](https://ziyuan.baidu.com/),添加并验证 `https://www.roncarve.com/` 的站点所有权。
|
||||
3. 在“普通收录”中提交首页 `https://www.roncarve.com/`,并在“站点地图”中提交 `https://www.roncarve.com/sitemap.xml`。
|
||||
4. 在百度平台的抓取诊断中检查首页、`/robots.txt` 和 `/sitemap.xml` 均返回 200;确认没有 CDN、防火墙或登录验证拦截 `Baiduspider`。
|
||||
5. 提交后持续观察索引量和抓取异常。首页通常需要约一周;超过 30 天仍为 0 时,再检查 DNS、HTTPS 证书、服务器日志、响应状态码和前端是否返回空白模板。
|
||||
|
||||
百度平台的账号验证、备案状态和 URL 提交需要站点管理员在后台完成,代码无法代办。
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
MARIADB_ROOT_PASSWORD=replace-with-a-long-random-password
|
||||
MARIADB_PASSWORD=replace-with-another-long-random-password
|
||||
@@ -0,0 +1,4 @@
|
||||
git.roncarve.com {
|
||||
encode zstd gzip
|
||||
reverse_proxy gitea:3000
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
# Gitea self-managed deployment
|
||||
|
||||
Gitea runs behind the existing Caddy gateway at `https://git.roncarve.com` and stores its data in MariaDB.
|
||||
The web service is private to Docker network `gateway_gateway`; Caddy proxies to `gitea:3000`.
|
||||
Git over SSH is exposed on host port `2222`:
|
||||
|
||||
```text
|
||||
git clone ssh://git@git.roncarve.com:2222/owner/repository.git
|
||||
```
|
||||
|
||||
Persistent data is stored under `/opt/gitea` on the server. MariaDB is only available inside the Docker network and is not exposed on a host port.
|
||||
|
||||
The first visit opens Gitea's installation page. Complete the setup and create the first administrator account there.
|
||||
@@ -0,0 +1,62 @@
|
||||
services:
|
||||
gitea:
|
||||
image: docker.gitea.com/gitea:latest
|
||||
container_name: gitea
|
||||
hostname: git.roncarve.com
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
mariadb:
|
||||
condition: service_healthy
|
||||
env_file:
|
||||
- .env
|
||||
environment:
|
||||
GITEA__server__DOMAIN: git.roncarve.com
|
||||
GITEA__server__SSH_DOMAIN: git.roncarve.com
|
||||
GITEA__server__ROOT_URL: https://git.roncarve.com/
|
||||
GITEA__server__PROTOCOL: http
|
||||
GITEA__server__HTTP_PORT: "3000"
|
||||
GITEA__server__SSH_PORT: "2222"
|
||||
GITEA__database__DB_TYPE: mysql
|
||||
GITEA__database__HOST: mariadb:3306
|
||||
GITEA__database__NAME: gitea
|
||||
GITEA__database__USER: gitea
|
||||
GITEA__database__PASSWD: ${MARIADB_PASSWORD}
|
||||
GITEA__mailer__PROTOCOL: smtps
|
||||
ports:
|
||||
- "2222:22"
|
||||
volumes:
|
||||
- /opt/gitea:/data
|
||||
- /etc/timezone:/etc/timezone:ro
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
networks:
|
||||
gateway:
|
||||
aliases:
|
||||
- gitea
|
||||
|
||||
mariadb:
|
||||
image: mariadb:11.4
|
||||
container_name: gitea-mariadb
|
||||
restart: unless-stopped
|
||||
env_file:
|
||||
- .env
|
||||
environment:
|
||||
MARIADB_ROOT_PASSWORD: ${MARIADB_ROOT_PASSWORD}
|
||||
MARIADB_DATABASE: gitea
|
||||
MARIADB_USER: gitea
|
||||
MARIADB_PASSWORD: ${MARIADB_PASSWORD}
|
||||
volumes:
|
||||
- /opt/gitea/mariadb:/var/lib/mysql
|
||||
healthcheck:
|
||||
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 12
|
||||
networks:
|
||||
gateway:
|
||||
aliases:
|
||||
- mariadb
|
||||
|
||||
networks:
|
||||
gateway:
|
||||
external: true
|
||||
name: gateway_gateway
|
||||
+39
-3
@@ -4,9 +4,36 @@
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="description" content="海南荣刻科技有限公司,专注数据治理、人工智能、垂类模型优化与模型私有化部署,为企业提供数据到 AI 落地的全链路解决方案。">
|
||||
<meta name="keywords" content="海南荣刻科技有限公司,荣刻科技,数据治理,人工智能,垂类模型优化,模型私有化部署,企业AI解决方案">
|
||||
<meta name="robots" content="index,follow,max-image-preview:large">
|
||||
<meta name="baiduspider" content="index,follow">
|
||||
<meta name="theme-color" content="#061018">
|
||||
<link rel="canonical" href="https://www.roncarve.com/">
|
||||
<link rel="icon" type="image/png" href="./assets/brand-logo-final.png">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:locale" content="zh_CN">
|
||||
<meta property="og:site_name" content="海南荣刻科技有限公司">
|
||||
<meta property="og:title" content="海南荣刻科技有限公司 - 数据筑基 · AI 落地">
|
||||
<meta property="og:description" content="专注数据治理、人工智能、垂类模型优化与模型私有化部署,为企业提供数据到 AI 落地的全链路解决方案。">
|
||||
<meta property="og:url" content="https://www.roncarve.com/">
|
||||
<meta property="og:image" content="https://www.roncarve.com/assets/brand-logo-final.png">
|
||||
<meta name="twitter:card" content="summary">
|
||||
<meta name="twitter:title" content="海南荣刻科技有限公司 - 数据筑基 · AI 落地">
|
||||
<meta name="twitter:description" content="专注数据治理、人工智能、垂类模型优化与模型私有化部署,为企业提供数据到 AI 落地的全链路解决方案。">
|
||||
<title data-i18n="title">海南荣刻科技有限公司 - 数据筑基 · AI 落地</title>
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "Organization",
|
||||
"name": "海南荣刻科技有限公司",
|
||||
"url": "https://www.roncarve.com/",
|
||||
"logo": "https://www.roncarve.com/assets/brand-logo-final.png",
|
||||
"description": "专注数据治理、人工智能、垂类模型优化与模型私有化部署,为企业提供数据到 AI 落地的全链路解决方案。",
|
||||
"email": "contact@roncarve.com",
|
||||
"telephone": "+8618482223118",
|
||||
"areaServed": "中国"
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
(function () {
|
||||
const validThemes = ['system', 'light', 'dark'];
|
||||
@@ -982,7 +1009,7 @@
|
||||
<div class="container">
|
||||
<div class="hero-layout">
|
||||
<div class="hero-copy reveal is-visible">
|
||||
<span class="eyebrow" data-i18n="hero_eyebrow">AI 与数据基础设施</span>
|
||||
<span class="eyebrow" data-i18n="hero_eyebrow">海南荣刻科技有限公司 · AI 与数据基础设施</span>
|
||||
<h1><span data-i18n="hero_line1">让企业数据</span><br><span class="accent" data-i18n="hero_line2">成为 AI 生产力</span></h1>
|
||||
<p class="hero-description" data-i18n="hero_desc">从数据治理、模型优化到私有化部署,荣刻科技为企业构建可落地、可持续、可掌控的 AI 能力体系。</p>
|
||||
<div class="hero-actions">
|
||||
@@ -1158,7 +1185,7 @@
|
||||
title: '海南荣刻科技有限公司 - 数据筑基 · AI 落地', skip: '跳到主要内容', brand: '荣刻科技', nav_label: '主导航', home_label: '荣刻科技首页', lang_label: '语言切换', menu_open: '打开导航菜单', menu_close: '关闭导航菜单',
|
||||
theme_label: '外观模式选择', theme_system: '跟随系统', theme_light: '浅色外观', theme_dark: '深色外观', theme_system_short: 'Auto', theme_light_short: 'Light', theme_dark_short: 'Dark', language_zh: '简体中文', language_en: 'English',
|
||||
nav_about: '能力链路', nav_services: '解决方案', nav_advantages: '核心优势', nav_offices: '交付网络', nav_contact: '预约咨询',
|
||||
hero_eyebrow: 'AI 与数据基础设施', hero_line1: '让企业数据', hero_line2: '成为 AI 生产力',
|
||||
hero_eyebrow: '海南荣刻科技有限公司 · AI 与数据基础设施', hero_line1: '让企业数据', hero_line2: '成为 AI 生产力',
|
||||
hero_desc: '从数据治理、模型优化到私有化部署,荣刻科技为企业构建可落地、可持续、可掌控的 AI 能力体系。',
|
||||
hero_primary: '预约 AI 场景诊断', hero_secondary: '查看解决方案', proof_data: '7 年数据技术积累', proof_private: '支持私有化部署', proof_delivery: '成都 / 海口双城交付',
|
||||
scene_live: '实时生成系统', scene_title: '企业智能系统', scene_desc: '数据 · 模型 · 部署 · 运营',
|
||||
@@ -1192,7 +1219,7 @@
|
||||
title: 'Hainan Roncarve Technology - Data Foundation · AI Delivery', skip: 'Skip to main content', brand: 'Roncarve Tech', nav_label: 'Main navigation', home_label: 'Roncarve Tech home', lang_label: 'Language selector', menu_open: 'Open navigation menu', menu_close: 'Close navigation menu',
|
||||
theme_label: 'Appearance selector', theme_system: 'Follow System', theme_light: 'Light appearance', theme_dark: 'Dark appearance', theme_system_short: 'Auto', theme_light_short: 'Light', theme_dark_short: 'Dark', language_zh: '简体中文', language_en: 'English',
|
||||
nav_about: 'Capabilities', nav_services: 'Solutions', nav_advantages: 'Advantages', nav_offices: 'Delivery', nav_contact: 'Book a Call',
|
||||
hero_eyebrow: 'AI + DATA INFRASTRUCTURE', hero_line1: 'Turn enterprise data', hero_line2: 'into AI productivity',
|
||||
hero_eyebrow: 'Hainan Roncarve Technology Co., Ltd. · AI + DATA INFRASTRUCTURE', hero_line1: 'Turn enterprise data', hero_line2: 'into AI productivity',
|
||||
hero_desc: 'From data governance and model optimization to private deployment, Roncarve builds practical, sustainable and controllable enterprise AI systems.',
|
||||
hero_primary: 'Book an AI Discovery Call', hero_secondary: 'Explore Solutions', proof_data: '7 years in data technology', proof_private: 'Private deployment ready', proof_delivery: 'Chengdu / Haikou delivery',
|
||||
scene_live: 'LIVE GENERATIVE SYSTEM', scene_title: 'ENTERPRISE INTELLIGENCE', scene_desc: 'DATA · MODEL · DEPLOY · OPERATE',
|
||||
@@ -1268,6 +1295,15 @@
|
||||
currentLanguage = selected;
|
||||
document.documentElement.lang = selected === 'zh' ? 'zh-CN' : 'en';
|
||||
document.title = i18n[selected].title;
|
||||
const description = selected === 'zh'
|
||||
? '海南荣刻科技有限公司,专注数据治理、人工智能、垂类模型优化与模型私有化部署,为企业提供数据到 AI 落地的全链路解决方案。'
|
||||
: 'Hainan Roncarve Technology provides enterprise data governance, AI, vertical model optimization and private deployment solutions.';
|
||||
const descriptionMeta = document.querySelector('meta[name="description"]');
|
||||
const ogTitleMeta = document.querySelector('meta[property="og:title"]');
|
||||
const ogDescriptionMeta = document.querySelector('meta[property="og:description"]');
|
||||
if (descriptionMeta) descriptionMeta.setAttribute('content', description);
|
||||
if (ogTitleMeta) ogTitleMeta.setAttribute('content', i18n[selected].title);
|
||||
if (ogDescriptionMeta) ogDescriptionMeta.setAttribute('content', description);
|
||||
document.querySelectorAll('[data-i18n]').forEach(function (element) {
|
||||
const key = element.dataset.i18n;
|
||||
if (i18n[selected][key]) element.textContent = i18n[selected][key];
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
User-agent: Baiduspider
|
||||
Allow: /
|
||||
|
||||
User-agent: *
|
||||
Allow: /
|
||||
|
||||
Sitemap: https://www.roncarve.com/sitemap.xml
|
||||
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||
<url>
|
||||
<loc>https://www.roncarve.com/</loc>
|
||||
<lastmod>2026-08-16</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>1.0</priority>
|
||||
</url>
|
||||
</urlset>
|
||||
Reference in New Issue
Block a user