Cloud Computing 14 min read

Turn an Idle PC into a Private Cloud Drive in 10 Minutes – Access Anywhere

This guide shows how to convert an unused home computer into a personal cloud storage service by installing Cloudreve, using a public‑IP cloud server and FRP for NAT traversal, configuring both server and client, and optionally enabling P2P mode for faster direct access from any device.

Pan Zhi's Tech Notes
Pan Zhi's Tech Notes
Pan Zhi's Tech Notes
Turn an Idle PC into a Private Cloud Drive in 10 Minutes – Access Anywhere

Background

The author wanted to reuse an idle home computer as a personal data server that can be accessed from anywhere. Because the home PC lacks a fixed public IP, a cloud server with a public IP is needed to forward traffic using intranet penetration (FRP).

Step 1 – Deploy a Personal Cloud Drive (Cloudreve)

Several open‑source cloud‑drive solutions exist (Cloudreve, Nextcloud, Seafile, etc.). The author recommends Cloudreve for personal use because it is lightweight, has a nice UI, and supports offline download.

Installation options include native Windows, native Linux, and Docker. The default package includes SQLite, so no external database is required.

Windows: download cloudreve.exe and double‑click to install.

Docker: run the following commands to create a data directory and start the container.

mkdir -p ~/cloudreve/data
docker run -d --name cloudreve \
    -p 5212:5212 \
    -p 6888:6888 \
    -p 6888:6888/udp \
    -v ~/cloudreve/data:/cloudreve/data \
    cloudreve/cloudreve:latest

Use docker logs cloudreve to view logs, docker stop cloudreve / docker restart cloudreve to manage the container, and docker rm cloudreve to remove it.

After installation, access http://127.0.0.1:5212 in a browser, register an account, and the personal cloud drive is ready.

Step 2 – Set Up FRP Server on the Cloud VM

Download the latest FRP release for the cloud server’s architecture (e.g., linux_amd64) from https://github.com/fatedier/frp/releases or with:

# Example for v0.60.0
wget https://github.com/fatedier/frp/releases/download/v0.60.0/frp_0.60.0_linux_amd64.tar.gz

Extract and keep only the server binaries:

tar -zxvf frp_0.60.0_linux_amd64.tar.gz
mv frp_0.60.0_linux_amd64 frp-server
cd frp-server
rm -f frpc*

Edit frps.toml (replace token, dashboard credentials as needed):

# frps.toml
bindPort = 7000            # client connection port
auth.token = "your_strong_token"
webServer.addr = "0.0.0.0"
webServer.port = 7500      # dashboard port
webServer.user = "admin"
webServer.password = "admin"

Create a systemd service file /etc/systemd/system/frps.service:

[Unit]
Description = frp server
After = network.target syslog.target
Wants = network.target

[Service]
Type = simple
ExecStart = /path/frp-server/frps -c /path/frp-server/frps.toml

[Install]
WantedBy = multi-user.target

Reload systemd, start the service, enable it at boot, and verify its status:

sudo systemctl daemon-reload
sudo systemctl start frps
sudo systemctl enable frps
sudo systemctl status frps

Open ports 7000, 7500, and 5212 in the cloud server’s security group.

Step 3 – Deploy FRP Client on the Personal PC

Download the matching FRP client package, extract it, and keep only frpc and frpc.toml:

# Enter the download directory
cd ~/Downloads/frp_0.60.0_xxx
rm -f frps*

Configure frpc.toml to expose the Cloudreve service:

# frpc.toml
serverAddr = "x.x.x.x"      # cloud server public IP
serverPort = 7000
auth.token = "your_strong_token"

[[proxies]]
name = "cloudreve"
type = "tcp"
localIP = "127.0.0.1"
localPort = 5212
remotePort = 5212

Test the client: ./frpc -c ./frpc.toml If the console shows start proxy success, the tunnel works. Run it in the background with:

nohup ./frpc -c ./frpc.toml > frpc.log 2>&1 &

Optional: P2P Direct Mode for Faster Transfer

When both PCs have open network environments, switch the proxy type to xtcp and set a shared secretKey. The server configuration stays the same; only the client frpc.toml files need adjustments.

On the target PC (service provider):

# frpc.toml (target)
[[proxies]]
name = "p2p_cloudreve"
type = "xtcp"
secretKey = "your_complex_password"
localIP = "127.0.0.1"
localPort = 5212

On the visitor PC (accessor):

# frpc.toml (visitor)
[[visitors]]
name = "p2p_cloudreve_visitor"
type = "xtcp"
serverName = "p2p_cloudreve"
secretKey = "your_complex_password"
bindAddr = "127.0.0.1"
bindPort = 5212
keepTunnelOpen = true

After starting both clients, access http://127.0.0.1:5212 on the visitor PC; traffic will flow directly between the two PCs without passing through the cloud server. Note that P2P may fail behind multiple network proxies, in which case revert to the standard tcp mode.

Conclusion

If the service cannot be reached, the most common cause is that the required ports are not opened in the cloud server’s firewall. Open the ports in the security group and the personal cloud drive should be accessible from any device.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

DockerP2PFRPNAT traversalCloudrevepersonal cloud
Pan Zhi's Tech Notes
Written by

Pan Zhi's Tech Notes

Sharing frontline internet R&D technology, dedicated to premium original content.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.