CONNECTED WORKSPACE 01
Everything where
you expect it.
Your Windows and Linux folders, in one quiet place.
Synced on your terms.
Synced moments ago
FOLDER LINKS 03
Your connected places
DROP ZONE
Send something across
RECENTLY MOVED
Latest activity
SERVER STATUS LIVE
Your connection, at a glance
SEND ACROSS ↗
Place a file exactly
where you need it.
Choose a file, choose a destination on Windows, and it will be waiting when you arrive.
SEND TO
OTHER SIDE ◫
See what’s on
the other side.
Browse any allowed Windows path, without syncing everything.
Type a full Windows path such as D:\Projects\client-site, or search by file name inside the current folder. Only approved folders are accessible.
WINDOWS FOLDERS
ACTIVITY ◷
A clear trail of
every movement.
Transfers, restored versions, and protected deletes stay visible here.
SHARED NOTES ✦
Leave a note
for your other self.
Notes appear across every connected device as soon as they’re saved.
SETTINGS ⚙
Keep control
of the connection.
DUALINK stays deliberately light: it watches only the folders you link.
Safe Delete
Deleted files stay in DUALINK Trash before anything is removed from the other side.
Version history
Keep restore points whenever a synced file changes.
Sync schedule
Sync quietly when devices wake up, then check only for linked folder changes.
DUALINK
Made by FARES ALAMRI — FAA
faaa.space ↗
DUALINK WIKI ?
Set it up once.
Move freely after.
Everything needed to connect Windows, Linux, your server, and a second device.
01 · START HERE
What DUALINK connects
DUALINK has two parts: this dashboard, and a small companion agent on every computer. The dashboard stores your links and shows progress. The agent sees only the folders you approve and transfers queued files when that device starts.
Linux and Windows are never running at the same moment. DUALINK places transfers in your server queue. When you boot the other system, its agent fetches them automatically.
02 · SERVER
Set up the website and database
- Upload the DUALINK folder to a PHP 8.2+ host with HTTPS enabled.
- Open phpMyAdmin, select your database, then import
api/schema.sql. - Copy
api/config.example.phptoapi/config.phpand add your host’s database details and Google OAuth keys. - Keep
api/config.phpoutside Git and outside the public web directory when your host allows it. - Create a Google OAuth “Web application”, add your HTTPS callback URL, and complete server-side ID-token verification in
api/auth/google-callback.php.
Open your domain in a browser. The Server Status card should change to Server online when the health endpoint is configured.
03 · LINUX
Connect your Linux system
- Install the DUALINK desktop companion from the project releases.
- Sign in with the same Google account used on the website.
- Name the device, for example
Linux workstation. - Select each Linux folder you want to link and choose its Windows destination.
- Allow notifications if you want “project.zip arrived” messages.
For right-click Send to DUALINK, enable the file-manager integration from the companion’s Settings. It adds Send to DUALINK to supported file-manager menus.
04 · WINDOWS
Connect your Windows system
- Install and open the companion app after booting Windows.
- Sign in with the exact same Google account.
- Choose your target folders such as Downloads, Desktop, Documents, or
D:\Projects. - Accept the folder permissions. DUALINK cannot read anything outside folders you explicitly link.
- Keep “Start with Windows” enabled so queued Linux transfers arrive automatically.
05 · OTHER SIDE
Browse without syncing
Open Other Side, type a path like C:\Users\Fares\Downloads, then select Go. Use the search field to filter by file or folder name. Select Bring to Linux to queue only that item; no full-folder sync is created.
For safety, the desktop agent rejects paths outside your approved folder roots. This prevents a browser session from exploring the whole operating system.
06 · SECURITY
Your files and database stay private
- Use HTTPS everywhere, never plain HTTP in production.
- Database credentials belong only in
api/config.php; the file is ignored by Git and must not be public. - Use a unique database user with access only to the DUALINK database.
- Google login is verified server-side; never trust a Google profile sent directly from the browser.
- Store uploaded file objects outside
public_htmlor in private object storage with short-lived signed URLs.
07 · HELP
When something does not arrive
- Server shows offline
- Check HTTPS, PHP error logs, database connection, and the API health endpoint.
- File stays in queue
- Boot the other system and make sure its companion is signed in with the same Google account.
- Path is rejected
- Add that folder as an approved location from the desktop companion, then retry.
- Two edits conflict
- Choose Keep Windows, Keep Linux, or Keep both. DUALINK never overwrites a conflict silently.