Gitea has two separate storage systems that work side by side:
- Configured via
[repository] ROOTinapp.ini - Default path:
{APP_DATA_PATH}/gitea-repositories
| #!/usr/bin/env bash | |
| # ============================================================================= | |
| # System Health Check — i9-9900K / 128GB DDR4-2666 / RAID 0 NVMe | |
| # ============================================================================= | |
| # Usage: | |
| # chmod +x healthcheck.sh | |
| # sudo ./healthcheck.sh # Full check | |
| # sudo ./healthcheck.sh --quick # Skip fio storage test | |
| # sudo ./healthcheck.sh --fix # Attempt to fix issues found | |
| # ============================================================================= |
| # Arma3_GetModsFromEnabled.ps1 | |
| # | |
| # This script reads the Arma 3 Launcher's preset XML file to determine which mods are enabled, then looks up their paths in the Steam.json file, and finally generates a startup parameter string that can be used to launch Arma 3 with only those mods. | |
| # | |
| # Note: This script assumes that the user has the Arma 3 Launcher installed and that the preset and Steam.json files are located in their default locations. | |
| # read and parse the Arma 3 Launcher's preset XML file | |
| $presetPath = "C:\Users\$env:USERNAME\AppData\Local\Arma 3 Launcher\Presets\arma3.defaultpreset2" | |
| [xml]$xml = Get-Content -Path $presetPath |
| using UnityEngine; | |
| using UnityEditor; | |
| using System.Collections.Generic; | |
| using System.IO; | |
| using System.Linq; | |
| public class FileStatTree : EditorWindow | |
| { | |
| private GameObject targetObject; | |
| private List<AssetSizeInfo> assetList = new List<AssetSizeInfo>(); |
| using UnityEngine; | |
| using UnityEditor; | |
| using System.Collections.Generic; | |
| public class PoiyomiFinder : EditorWindow | |
| { | |
| private GameObject targetObject; | |
| private List<GameObject> results = new List<GameObject>(); | |
| private Vector2 scrollPos; |
Date: October 26, 2025
Subject: Feasibility of "Whitelisting" and DRM for User-Generated Avatars
This paper examines the technical feasibility of implementing "Whitelisting" or Digital Rights Management (DRM) systems within VRChat avatars. Specifically, it analyzes the efficacy of external Open Sound Control (OSC) applications acting as authentication keys, internal PIN systems, and platform-native permissions. The findings indicate that due to the client-side nature of avatar rendering and the lack of logic scripting (Udon) on avatars, true "whitelisting" is technically impossible to secure. The paper concludes that Server-Side Access Control (Private Uploads) remains the only robust method for limiting avatar usage.
Baking lightmaps and switching platforms between PC and Android (Quest) are the two biggest time-sinks in VRChat creation. Setting up a Unity Accelerator (the modern version of the Cache Server) allows you to offload asset processing and store multiple versions of the same asset simultaneously.
| #!/bin/bash | |
| # --- 1. CONFIGURATION --- | |
| # Replace these placeholders with your actual values. | |
| # Backblaze B2 S3 Credentials | |
| export AWS_ACCESS_KEY_ID="YOUR_B2_KEY_ID" | |
| export AWS_SECRET_ACCESS_KEY="YOUR_B2_APPLICATION_KEY" | |
| # Restic Repository Details |
| FROM ubuntu:24.04 AS build | |
| RUN apt-get update && apt-get install -y curl && rm -rf /var/lib/apt/lists/* | |
| RUN curl -fsSL https://get.docker.com | sh | |
| FROM ubuntu:24.04 | |
| ARG TARGETPLATFORM | |
| ARG AVATAR_IMAGE_URL | |
| COPY server-product/app /app | |
| COPY server-product/docker/entrypoint-server.sh /root/bin/entrypoint.sh |
| # Use a modern compose version | |
| version: '3.8' | |
| services: | |
| caddy: | |
| image: caddy:latest | |
| restart: unless-stopped | |
| ports: | |
| # Port 80 for HTTP and ACME (Let's Encrypt) challenges | |
| - "80:80" |