Skip to main content

Deploy and Migrate NextCloud AIO behind GFW | 在隔阂之后部署和迁移NextCloud-AIO实例

· 18 min read
Ferdinand Su
PhD Student @ HIT-ICES, Founder & Manager @ HIT-ReFreSH, C# developer.

这是一篇双语博客,因为我同时想主要面向汉语使用者,因为实际上非常缺少使用汉语的NextCloudAIO部署相关文章。请原谅我我不想使用docusaurus的i18n,它太繁琐而不适用我的个人博客。 This is a bilingual blog post, as I primarily want to cater to Chinese-speaking users, given the significant lack of NextCloudAIO deployment articles in Chinese. Please forgive me for not using Docusaurus i18n, as it's too complicated for my personal blog needs. English translated by Claude

本文将会介绍我在Windows->Linux上部署和迁移NextCloudAIO,其中包含了不少过程中的难点(尤其是在GFW后无法直接访问ghcr的情况下),我首先在Windows上部署,然后从部署导出备份数据,最终在Ubuntu 24.04下重新部署,全程利用docker compose启动,以及caddy进行反代(我使用cloudflare解析自己的域名)。

This article will cover my experience deploying and migrating NextCloudAIO (https://github.com/nextcloud/all-in-one) from Windows to Linux, including several challenging aspects encountered during the process (especially accessing ghcr.io from behind the GFW). I firstly deployed on Windows, and then export backup data for redeployment on Ubuntu 24.04. Throughout the process, we'll be using Docker Compose for launching the services and Caddy for reverse proxying (with Cloudflare handling my domain name resolution).

Tailscale Subnet Configure

· One min read
Ferdinand Su
PhD Student @ HIT-ICES, Founder & Manager @ HIT-ReFreSH, C# developer.

When I configuring a new subnet router in tailscale network for my company, the other devices cannot access subnet devices:

>>> ping 192.168.1.199
<<< (Error)

while Tailscale ping works well.

Everything described in Official Docs have already done, but it's still not working. What's wrong?

Build Peronal VLAN Web Services with Tailscale, Caddy and Soft Router

· 4 min read
Ferdinand Su
PhD Student @ HIT-ICES, Founder & Manager @ HIT-ReFreSH, C# developer.

Tailscale is good enough to build a basic VLAN than connect your devices together under 100.64.0.0/10. But it's not enough for me:

  1. I have to use multiple private networks with different subnet (10.123.0.0/16, 192.168.1.0/24, etc.), and I don't want to configure every device for tailscale.
  2. I have multiple always-on devices (a cloud server, an Orange Pi,a work PC, and a home PC), where I want to deploy private services (http server, aria2, etc.)
  3. I have my own domain (namely example.com for decription), and I want to use it for HTTPS and covinence.

如何在Kubenetes集群中部署Stun服务器

· 3 min read
Ferdinand Su
PhD Student @ HIT-ICES, Founder & Manager @ HIT-ReFreSH, C# developer.

一般地,WebRTC需要两台主机建立P2P连接从而完成直接的数据传输。然而,在一些情况下,这是不可能的(例如在K8s集群中),为此,我们需要STUN/TURN服务器的支持。而STUNner就是这样的一个专门为K8s集群准备的Stun/Turn服务器。本文将讲述如何快速部署Stunner到K8s实验集群中以开展非生产用途的测试。

自定义Unity编译内容

· One min read
Ferdinand Su
PhD Student @ HIT-ICES, Founder & Manager @ HIT-ReFreSH, C# developer.

与Unity Editor环境不同,在生成Unity Build时,Unity只会选择平台对应部分的代码构建,而跳过非本平台的部分。如,WindowsBuild只会包含Windows相关的内容,不会有Android的内容。那如果我想在LinuxBuild中包括Windows相关的API,该怎么办呢?

使用DocFx生成Java项目文档网站

· 6 min read
Ferdinand Su
PhD Student @ HIT-ICES, Founder & Manager @ HIT-ReFreSH, C# developer.

DocFx是一个非常好用的文档生成软件,其优势在于配置简便,能够方便地生成API文档+人工文章文档有机结合的静态文档网站,而不需要过多的工作。

然而,DocFx的自动API文档生成目前仅官方支持.NET项目,而Java项目的默认Javadoc只包括API文档,缺乏人工文档辅助而过于拉跨。笔者问了Bing,发现Java平台下确实没有特别好用的文档生成工具,因此最后还是决定使用DocFx加上一个非官方插件docascode/docfx-doclet(Archived)的Fork: googleapis/java-docfx-doclet,用于构造HIT-ReFreSH/JMobileSuit的文档网站。这玩意坑还是很多的,笔者进行了许多小修小补。

Use Docs Layout in Docusaurus Blog

· 4 min read
Ferdinand Su
PhD Student @ HIT-ICES, Founder & Manager @ HIT-ReFreSH, C# developer.

Docusaurus provides a powerful blog plugin as you can see in my site. However, I dislike two points of the docusaurus blog:

  1. I cannot collapse sidebar in blog pages rather than in docs pages.
  2. Too much blank space in maximumized blog pages.

Through swizzling, I migrated Docs layout to the Blog layout, the steps are as following:

解决Unity XR中UI不可交互的问题

· 2 min read
Ferdinand Su
PhD Student @ HIT-ICES, Founder & Manager @ HIT-ReFreSH, C# developer.

笔者这一周来都在学习如何在Unity XR场景中构筑一个可交互的UI,可是无论怎么搞UI都没有反应,控制器的光线根本就照不到UI上,更别提交互了。然而,就在刚刚,这个谜题被解开,原因非常难绷。

深度订制属于自己的docusaurus网站

· 4 min read
Ferdinand Su
PhD Student @ HIT-ICES, Founder & Manager @ HIT-ReFreSH, C# developer.

本站在原始的docusaurus基础上主要定制了两部分:

  • 主题配色系统
  • 右上角的Social图标

已经有前人给出了许多更详细的定制化方法,但是我没有时间过多参考。最近比较忙,今天就简单写写吧。