JP / EN

Building an LFS SaaS for Project Management


This article is Day 23 of Unreal Engine (UE) Advent Calendar 2025 Series 3. This article is #PR.

What Do You Use for Source Control?

What do you use for Unreal Engine project source control? Git, SVN, Perforce, etc.

Git

For Git source control, you’d typically use GitHub. Regular text files have no repository size limit, but single file limit is 100MB. 3D model data often exceeds this. LFS is used to bypass this.

LFS

LFS (Large File Storage) is a Git extension that references large files as pointer files, separating the actual content.

version https://git-lfs.github.com/spec/v1
oid sha256:4cac19622fc3ada9c0fdeadb33f88f367b541f38b89102a3f1261ac81fd5bcb5
size 84977953

Downloads actual content from independent LFS server based on unique oid.

GitHub LFS is Expensive

GitHub provides this LFS system, but it’s very expensive.

https://github.com/pricing/calculator?feature=lfs

Small team with 50GB storage and 280GB monthly download costs ~4000 yen. Download pricing is abnormally high; CI/CD downloading large data can explode costs.

Even paying, single file limit is 2-5GB, somewhat restrictive.

Building LFS

https://github.com/git-lfs/git-lfs

GitLFS is fully open source with defined specs, so you can build your own.

Dentsu Research blogged about self-hosting with AWS S3: https://tech.dentsusoken.com/entry/s3-lfs-setup

Thought this could be SaaS.

candylfs

https://candylfs.stream/

Built candylfs, an LFS SaaS. Using Cloudflare R2 instead of S3, fully serverless, nearly at-cost pricing. Downloads are unlimited and free.

Also supports Locking API. Single file limit is 10GB.

Managing UE Projects

Signup

Sign up at https://candylfs.stream/, then Create Tenant. Tenant is like GitHub org or username.

GitHub Integration

For individuals, add GitHub user ID.

  • Permission: ReadOnly or Read and Write
  • Token Scope: All repositories in tenant, or specific repository
  • Token Expiration: Validity period of issued token

For organizations, use Add Organization to Authorize candylfs.

Then select the organization to add from the list.

  • Permission: ReadOnly or Read and Write
  • Allowed Teams (optional): Comma-separated Team names
  • Token Scope: All repositories in tenant, or specific repository
  • Token Expiration: Validity period of issued token

CLI Login

https://github.com/candylfs/candylfs-cli/releases

Download the latest CLI binary. All CLI code is public, so you can verify it yourself if concerned.

If candylfs produces output, PATH is set correctly.

Login with candylfs login <tenant id>.

Open https://github.com/login/device and enter the code.

On success:

✓ Logged in as mizuamedesu (rw)
✓ Token stored for 0 repositories in tenant: test

At this point, credentials are passed to git credential helper, enabling seamless authentication.

You can view/manage from the admin console.

Repository Setup

Create repo on GitHub, clone locally empty.

Write config files and initial commit. lfsconfig settings can be checked from web console.

.lfsconfig

  url = https://lfs.candylfs.stream/<tenant-name>/<repo-name>

.gitattributes

Content/** filter=lfs diff=lfs merge=lfs -text

.gitignore

Binaries
DerivedDataCache
Intermediate
Saved
.vscode
.vs
*.VC.db
*.opensdf
*.opendb
*.sdf
*.sln
*.suo
*.xcodeproj
*.xcworkspace

Adding UE Project

Put entire UE project in initialized repo. Cache folders should be grayed out with ignore.

Push should work. Initial push may take 5-10+ minutes.

https://github.com/mizuamedesu/ue-lfs-demo

Using from CI/CD

Create from Tokens > Create Token. For CI/CD use, send arbitrary username (like hogehoge) with the issued token as password. (LFS spec uses Basic auth)

FAQ

Can I migrate from GitHub LFS?

Yes. Clone all data including LFS locally, configure lfsconfig, push.

Worried about continuity from individual service?

Commit history is managed by external services, this is just a container for content. For peace of mind, full backup via CI/CD is possible. My personal games also run on this infrastructure.

Finally

How was it? There may still be bugs, please contact [email protected] or X DM. Also issued 25% off coupon UEQiita2025 valid until 2026/01/31. Please use it!

Back to list