This article is aimed at beginners and explains how to set up a personal website, using iCerya Space (built on NextJS and Docker Compose) as an example. The steps are: prepare a standalone domain, a cloud server, and a public IP; purchase the cloud server; register the domain with Cloudflare and add an A record pointing to the server's public IP; configure the environment with the BT Panel and make sure Docker is running; download and install iCerya Space; bind the domain with an activation code, create a site, set up a reverse proxy to 127.0.0.1:5500, and request an SSL certificate through Let's Encrypt. Once that's done, open the domain and follow the setup wizard to go live.
Here in 2026, personal websites are making a comeback. More and more people want to build a personal homepage of their own. Technical docs aren't the place for step-by-step hand-holding, and plenty of existing articles simply aren't detailed enough, so I wrote this one. It walks you through building a personal site from a standing start, using iCerya Space as the example. If you already have some background, or would rather poke around on your own, these articles will take you further:
iCerya Space is a personal space engine built on a NextJS and Docker Compose V2 stack, and it natively runs on x86 64-bit or ARM 64-bit Windows, Linux, and macOS. However, if you need something other people can reach without trouble and that you can easily maintain, I recommend a Linux-based stack.
Before you start, a successful deployment needs the following basics:
A domain name of your own
A cloud server (or a server of your own)
A public IP address
A browser with page translation (if your English isn't up to scratch)
A payment method (Alipay, WeChat Pay, a bank card; if you want to buy a domain straight from Cloudflare or use an overseas cloud provider, you'll need a VISA, Mastercard, or any mainstream card that handles international payments)
1. Buying a Cloud Server
A cloud server is a “service” offered by a cloud provider, usually with a public IP included. You can use their machines for testing, going live, and so on, without maintaining any physical hardware yourself. If you don't have a server on hand — let alone a public IP — a cloud server is the way to go. Some providers offer “lightweight application servers”, which are normally billed by the month, cost less than standard cloud servers, and suit personal use better.
You can get a cloud server through the options below; compare providers and pick whichever you think fits best. If you don't plan to go through ICP filing, you'll need a server outside mainland China, in which case it makes little difference whether you choose a Chinese or an overseas provider. This list isn't exhaustive — you're welcome to go with any other provider you know:
Chinese cloud providers
Tencent Cloud (run by Tencent; currently one of the more sensible Chinese providers, with a clean and easy-to-use console, though it doesn't take direct payment by Alipay)
Alibaba Cloud (run by Alibaba; supports Alipay)
Baidu Cloud
Volcano Engine (relatively few overseas nodes)
JD Cloud
Huawei Cloud
UCloud
Overseas cloud providers
Overseas cloud services usually hand out big sign-up credits (say, $200), and if you're a student with a GitHub account and student verification, you can use Microsoft Azure for very little or even for free.
Google Cloud
Microsoft Azure
Amazon
Once you've bought the cloud server, make a note of the 公网 IPv4 地址
2. Getting a Domain
The mainstream places to register a domain these days are Tencent Cloud, Alibaba Cloud, and Baidu Cloud in China, and Cloudflare, GoDaddy, and DynaDot abroad. Personally I'd register with Cloudflare, so I'll use it as the example here; or go with whichever registrar you like — it makes no difference.
Using Cloudflare as our example, open a browser (Microsoft Edge, Google Chrome, whatever you have), type cloudflare.com into the address bar, and sign up for an account with your email address.
Once the Cloudflare dashboard is open, choose “Register” under “Domains”, click “Buy domain” in the pane on the right, then in the search box on the new page enter a combination of English words, hyphens (-), and numbers, and buy it under a suffix you like; if the domain you want shows as “taken”, you can always acquire it with the power of money… or just pick another word.Note that domains are usually bought by the year, and once registered a domain can't be changed or refunded. If you switch domains later, you can only register a new one that nobody else has taken — and your old domain stays yours until it expires.
Once the domain is registered, go to your registrar's DNS management area (note: on Tencent Cloud, domain management happens in DNSPod). In the Cloudflare dashboard sidebar, choose “Overview” under “Domains”, click the domain you just bought, then in the sidebar choose “Records” under “DNS”. Add the following A record, entering your server's 公网 IP:
Name:@
Type:A
IPv4 address:你的服务器公网 IPv4 地址
Proxy status: Proxied
TTL: Auto, or 600
A record name means the third-level, fourth-level, or deeper subdomain of your domain; for example, if you point example.com to the address 1.1.1.1 with an A record, and the record is named api, the DNS server will resolve api.example.com to 1.1.1.1. Note that @ stands for the root of the domain, so a record of @ means the domain itself.
3. Setting Up the Environment
A rented cloud server usually gives you a VNC or SSH channel. Connect to the server terminal that way, and you can start working on your server right from the terminal panel that opens. You can install a beginner-friendly panel such as BT Panel (Baota) or 1Panel; the reverse proxy and Nginx configuration later in this article use BT Panel as the example, or, if you know what you're doing, you can set everything up directly in the terminal.
Note
The first time you launch BT Panel, it may ask which environment to install; in most cases just pick the option labelled LNMP.
Configuring Docker
Take iCerya Space: it's prebuilt software that runs on Docker, so we need to make sure Docker is running on the server. Type this command into the terminal:
BASH
docker version
If the output includes Server, you're good to go; if not, run the command below:
With everything in place, you can go ahead and download and install iCerya Space. On the iCerya Space website, log in to your iCerya ID, then under “Get iCerya Space” download the Linux x86-64 image package and upload it to your server's ~/ directory (that is, your /<你的用户名> directory; if you weren't asked to create an account with a custom name when you bought the cloud server, it'll be /root), then run the command below to unpack it:
BASH
mkdir -p ~/icerya-space-install && cd ~/icerya-space-install && tar -xf ~/ICSPACE-IMG_preview_0-20-12_103_63_linux_x86-64.tar
Unpacking prints nothing to the console; once the prompt reappears, enter the install command:
BASH
./install.sh
5. Configuring the Domain and Reverse Proxy
When the installation finishes, the console should display iCerya Space is now available at "http://192.168.1.20:5500". If you installed on a cloud server and plan to bind a domain, don't rush to open it just yet; if you don't intend to show it to anyone, or you're only installing locally, then the domain-binding section below doesn't concern you.
Configuring the Domain
iCerya Space authenticates licences by binding a domain to an activation code, so first head to the product centre on the iCerya Space website and enter the domain you want to bind under your key.
In BT Panel, go to “Website” and create a new site, filling in the following:
Domain: the domain you resolved earlier at Cloudflare or with your registrar (no prefix or suffix — for example, if you entered @ in the DNS record, put your-domain, and if you entered other characters (say ABC), put ABC.your-domain, where the your-domain part must include the final dot and the suffix (e.g., .com, .cn, .top, .xyz, etc.)
Remarks: any text you can understand
Root directory: leave it alone
FTP, database, PHP: set them all to 不创建 or 纯静态
Site category: worth a look if you're curious; it doesn't affect how the site runs
Once it's created, find the domain you just added under “Website”, click “Settings” to the right of the entry, then look toward the bottom of the window that opens for “Reverse proxy” and click “Add reverse proxy” in the pane on the right.
Enable proxy: on
Enable cache & advanced features: leave as is or turn off
Once you've filled in the fields above, click “OK” — and don't close the “Settings” window afterwards.
Configuring the Domain Certificate
In “Settings” (if you've already closed it, click “Settings” to the right of the site you just configured under “Website” in BT Panel to reopen it), find “SSL”. If you haven't bought or set up any SSL service, look for “Let's Encrypt” in the pane on the right and click “Apply certificate”; in the window that opens, choose “File verification”, tick everything below, then click “Apply certificate”. If you have bought a dedicated domain certificate service, check your provider's site for how to download the certificate files and configure them here.
If you had already set up the “Reverse proxy” when you configured the Let's Encrypt certificate, switch the reverse proxy to “Off” for now, then turn the “Reverse proxy” back on once Let's Encrypt has finished the file verification.
6. And So the Work of Creation Is Done
With all of the above complete, open your domain, follow the iCerya Space setup wizard to finish configuring everything, and set off on your journey of self-expression in your own personal space.
Here in 2026, personal websites are making a comeback. More and more people want to build a personal homepage of their own. Technical docs aren't the place for step-by-step hand-holding, and plenty of existing articles simply aren't detailed enough, so I wrote this one. It walks you through building a personal site from a standing start, using iCerya Space as the example. If you already have some background, or would rather poke around on your own, these articles will take you further:
If you're planning to deploy the Yohaku theme used on this site, have a look at these articles:
0. Getting Ready
iCerya Space is a personal space engine built on a NextJS and Docker Compose V2 stack, and it natively runs on x86 64-bit or ARM 64-bit Windows, Linux, and macOS. However, if you need something other people can reach without trouble and that you can easily maintain, I recommend a Linux-based stack.
Before you start, a successful deployment needs the following basics:
1. Buying a Cloud Server
A cloud server is a “service” offered by a cloud provider, usually with a public IP included. You can use their machines for testing, going live, and so on, without maintaining any physical hardware yourself. If you don't have a server on hand — let alone a public IP — a cloud server is the way to go. Some providers offer “lightweight application servers”, which are normally billed by the month, cost less than standard cloud servers, and suit personal use better.
You can get a cloud server through the options below; compare providers and pick whichever you think fits best. If you don't plan to go through ICP filing, you'll need a server outside mainland China, in which case it makes little difference whether you choose a Chinese or an overseas provider. This list isn't exhaustive — you're welcome to go with any other provider you know:
Chinese cloud providers
Overseas cloud providers
Overseas cloud services usually hand out big sign-up credits (say, $200), and if you're a student with a GitHub account and student verification, you can use Microsoft Azure for very little or even for free.
Once you've bought the cloud server, make a note of the 公网 IPv4 地址
2. Getting a Domain
The mainstream places to register a domain these days are Tencent Cloud, Alibaba Cloud, and Baidu Cloud in China, and Cloudflare, GoDaddy, and DynaDot abroad. Personally I'd register with Cloudflare, so I'll use it as the example here; or go with whichever registrar you like — it makes no difference.
Using Cloudflare as our example, open a browser (Microsoft Edge, Google Chrome, whatever you have), type cloudflare.com into the address bar, and sign up for an account with your email address.
Once the Cloudflare dashboard is open, choose “Register” under “Domains”, click “Buy domain” in the pane on the right, then in the search box on the new page enter a combination of English words, hyphens (-), and numbers, and buy it under a suffix you like; if the domain you want shows as “taken”, you can always acquire it with the power of money… or just pick another word.Note that domains are usually bought by the year, and once registered a domain can't be changed or refunded. If you switch domains later, you can only register a new one that nobody else has taken — and your old domain stays yours until it expires.
Once the domain is registered, go to your registrar's DNS management area (note: on Tencent Cloud, domain management happens in DNSPod). In the Cloudflare dashboard sidebar, choose “Overview” under “Domains”, click the domain you just bought, then in the sidebar choose “Records” under “DNS”. Add the following A record, entering your server's 公网 IP:
A record name means the third-level, fourth-level, or deeper subdomain of your domain; for example, if you point example.com to the address 1.1.1.1 with an A record, and the record is named api, the DNS server will resolve api.example.com to 1.1.1.1. Note that @ stands for the root of the domain, so a record of @ means the domain itself.
3. Setting Up the Environment
A rented cloud server usually gives you a VNC or SSH channel. Connect to the server terminal that way, and you can start working on your server right from the terminal panel that opens. You can install a beginner-friendly panel such as BT Panel (Baota) or 1Panel; the reverse proxy and Nginx configuration later in this article use BT Panel as the example, or, if you know what you're doing, you can set everything up directly in the terminal.
The first time you launch BT Panel, it may ask which environment to install; in most cases just pick the option labelled LNMP.
Configuring Docker
Take iCerya Space: it's prebuilt software that runs on Docker, so we need to make sure Docker is running on the server. Type this command into the terminal:
If the output includes Server, you're good to go; if not, run the command below:
4. Downloading and Installing iCerya Space
With everything in place, you can go ahead and download and install iCerya Space. On the iCerya Space website, log in to your iCerya ID, then under “Get iCerya Space” download the Linux x86-64 image package and upload it to your server's ~/ directory (that is, your /<你的用户名> directory; if you weren't asked to create an account with a custom name when you bought the cloud server, it'll be /root), then run the command below to unpack it:
Unpacking prints nothing to the console; once the prompt reappears, enter the install command:
5. Configuring the Domain and Reverse Proxy
When the installation finishes, the console should display iCerya Space is now available at "http://192.168.1.20:5500". If you installed on a cloud server and plan to bind a domain, don't rush to open it just yet; if you don't intend to show it to anyone, or you're only installing locally, then the domain-binding section below doesn't concern you.
Configuring the Domain
iCerya Space authenticates licences by binding a domain to an activation code, so first head to the product centre on the iCerya Space website and enter the domain you want to bind under your key.
In BT Panel, go to “Website” and create a new site, filling in the following:
Once it's created, find the domain you just added under “Website”, click “Settings” to the right of the entry, then look toward the bottom of the window that opens for “Reverse proxy” and click “Add reverse proxy” in the pane on the right.
Once you've filled in the fields above, click “OK” — and don't close the “Settings” window afterwards.
Configuring the Domain Certificate
In “Settings” (if you've already closed it, click “Settings” to the right of the site you just configured under “Website” in BT Panel to reopen it), find “SSL”. If you haven't bought or set up any SSL service, look for “Let's Encrypt” in the pane on the right and click “Apply certificate”; in the window that opens, choose “File verification”, tick everything below, then click “Apply certificate”. If you have bought a dedicated domain certificate service, check your provider's site for how to download the certificate files and configure them here.
If you had already set up the “Reverse proxy” when you configured the Let's Encrypt certificate, switch the reverse proxy to “Off” for now, then turn the “Reverse proxy” back on once Let's Encrypt has finished the file verification.
6. And So the Work of Creation Is Done
With all of the above complete, open your domain, follow the iCerya Space setup wizard to finish configuring everything, and set off on your journey of self-expression in your own personal space.