HTTP File Server

Turn your Android device into a file server, accessible from any browser on the same network.

What is Self-Hosted?

Self-Hosted is an HTTP server that turns your Android device into a file server accessible from any browser on the same network. It lets you:

  • Browse the device files from your computer.
  • Download, upload, rename, and delete files remotely.
  • Edit Markdown files directly in the browser.
  • Manage users with Admin and Visitor roles.

The server is based on NanoHTTPD and runs as a foreground service, ensuring it is not killed by the system.

Activation and Setup

  1. Open Kwiq Settings.
  2. Go to "Self-Hosted" or tap the server icon in Quick Tools and select "Settings".

Configure the parameters:

  • Port: default 8080 (valid range: 1024-65535).
  • Root directory: default Downloads/. Tap to choose another folder.
  • Chunk size: for large file uploads (default 1 MB, maximum 16 MB).
  • Show hidden files: toggle whether files starting with . are shown.
  • HTTPS: toggle to also serve the dashboard over HTTPS (self-signed certificate, default port 8443).
  • Biometric login: toggle to allow signing in with fingerprint or face from the login page.
  1. Turn on the "Server Active" switch to start the server.

Once activated, a persistent notification appears with the server URL. Tap it to open the server in the browser.

User Management

On the settings screen, you can manage which users can access the server:

  • Add: tap "Add User" and set a name, password, and role (Admin or Visitor).
  • Edit: tap an existing user to change their details.
  • Remove: swipe or tap the delete icon next to the user.
Role Permissions
Admin Browse, download, upload, create folders, rename, delete, edit Markdown, batch download, move and wallpapers
Visitor Browse and download files only
Warning by default, the Admin user is Kwiq with an empty password, and the Visitor is Visitante with an empty password. Change the passwords before using the server on networks you do not fully trust.

Accessing the Server

With the server running, you can access it from any device on the same network:

  1. Make sure the Android device and the computer are on the same Wi-Fi network.
  2. Check the URL of the server in the persistent notification or in the Self-Hosted settings. It usually looks like http://192.168.1.100:8080.
  3. Open that URL in the computer's browser.
  4. Log in with one of the configured users.

Access over HTTPS (optional)

Besides plain HTTP, the server can also serve the dashboard over HTTPS for an encrypted connection:

  • Enable HTTPS in the Self-Hosted settings. A self-signed certificate is generated automatically on the device — nothing to install or configure.
  • HTTPS port: default 8443. When enabled, the settings screen shows the HTTPS URL (e.g. https://192.168.1.100:8443) with a copy button, next to the regular HTTP address and QR code.
  • The browser will show a security warning because the certificate is self-signed — that is expected. Use "Advanced" → "Proceed" to continue.
  • Both HTTP and HTTPS work at the same time: turning HTTPS on does not turn HTTP off.
  • The Kwiq internal browser (web search, wallpaper search) automatically trusts this certificate, so HTTPS pages open without warnings inside the app.

If you prefer, use the QR Code: on the settings screen or via the Quick Tools shortcut (long press), a QR Code is displayed. Scan it with another device to open the URL automatically.

Authentication and Users

The server uses token-based session authentication:

  • On login, a cryptographically random token (64 hex characters) is generated and stored in a cookie called kwiq_token.
  • The token expires after 24 hours, requiring a new login.
  • Sessions are stored in memory (a synchronized MAP).
  • Public routes (no authentication): /login, /api/login, /favicon.ico, /__static/*, /__wallpaper/*.

Biometric login

If enabled in the settings, the login page also offers a "Login with biometrics" button for the Admin user:

  1. Tapping it sends a notification to the device — tap it there to open the system biometric prompt.
  2. Authenticate with your fingerprint or face; the browser detects the result automatically and logs you in.
  3. If you cancel or no biometric is configured on the device, you can simply use the regular username and password login instead.

On logout, the token is removed and the user is redirected to the login page.

File Operations

Admin users can perform the following operations from the web interface:

Upload

Uploads files in chunks with resume support. The chunk size is set in preferences.

Download

Downloads individual files or multiple files as a ZIP (batch download).

Create Folders

Creates new folders in the current directory.

Create Notes

Creates text (.txt) or Markdown (.md) files directly on the server.

Rename / Delete

Renames or deletes files and folders individually or in bulk.

Markdown Editor

Edit Markdown files with direct saving to the server via /save-markdown.

Usage with scrcpy

To use Kwiq's Desktop Mode from a computer, you can mirror a virtual display with scrcpy:

  1. Connect the Android device to the computer via USB or Wi-Fi (ADB).
  2. Create a virtual display with scrcpy:
  3. On the device, the virtual display will appear as a secondary screen.
  4. Open Kwiq's Desktop Mode and drag the window to the virtual display.
  5. On the computer, the scrcpy window shows Desktop Mode in action.

The virtual display keeps working after scrcpy is closed, so this is also a way to prepare a Desktop workspace for an external screen.

Tip scrcpy needs a USB cable or ADB over Wi-Fi, and in exchange gives you the lowest latency available for driving Desktop Mode from a computer.

QR Code and Quick Access

With the server running, you can use the Quick Tools shortcut (long press the Self-Hosted icon) to:

  • View the QR Code for the server URL — scan it with another device to open it automatically.
  • Copy the URL to the clipboard.

This is especially useful for sharing access with other people on the same network without typing the IP address.

Apps Menu

The dashboard header includes an Apps Menu button that lists all installed apps with their icons. You can launch apps, view details, search the Play Store, or uninstall them directly from the browser.

  • Click on any app to launch it immediately on the device.
  • Right-click (or long-press on touch screens) to open a context menu with additional options.
  • App Details (on PC): displays package info, version, install date, permissions, and more in a modal on the browser.
  • App Details (on phone): opens the Android system app info screen on the device.
  • Search in Play Store: opens the Play Store listing in a new browser tab.
  • Search the web: performs a web search for the app in a new browser tab.
  • Uninstall: sends an uninstall request to the device, which shows the system uninstall dialog.
  • Install APK: click the upload button next to the apps menu, pick an APK file from your computer, and it will be uploaded to the device and submitted to the system installer, which shows the standard confirmation dialog on the phone. Approve it there to finish the install. If Kwiq is not allowed to install from unknown sources yet, the dashboard asks you to open the system settings first.
  • Hidden Apps: click the eye icon in the apps menu header to reveal hidden apps (admin only). Each app row has its own eye toggle — the open eye hides the app, the cut-eye shows it again. Hidden apps appear dimmed with a cut-eye icon, and apps in hidden categories are hidden too, following the same rules as the launcher. The toggle syncs with the launcher on the phone in both directions.

The apps menu fetches the list in real-time with base64-encoded icons, so no extra HTTP requests are needed. Search filters the list as you type.

Wallpaper Search

The Wallpaper page of the dashboard includes a provider search that mirrors the wallpaper picker inside the Kwiq app. You can search images from all the built-in providers — Wallhaven, Unsplash, Pixabay, Pexels, Safebooru, Wikimedia Commons, Openverse, Picsum Photos, LoremFlickr and the Kwiq library — with the same filters.

  • Pick a provider from the dropdown — each provider shows its own set of filters, exactly like the app.
  • Filters: orientation (portrait/landscape/any) plus provider-specific ones: Wallhaven (category, purity, sorting, order, toplist range, resolution and color swatches), Pixabay (type, order, safe search), Unsplash (order) and Pexels (size).
  • Preview: results load in a grid with author name and thumbnail. Thumbnails are proxied by the server, so they work even without a direct connection to the provider.
  • Add to slot: each result has its own "Add to slot" button with a slot selector (Light/Dark x Portrait/Landscape) — the image is downloaded and joins the chosen slot right away.
  • Batch mode: tick the checkboxes on multiple results, pick a slot, and press "Add selected" to download them all at once.
  • Pagination: press "Load more" to keep browsing results from the provider.
  • API keys: providers that require a key (Unsplash, Pixabay, Pexels) reuse the keys configured in Kwiq Settings > API Keys. If a provider needs a key and none is set, the search warns you.

Everything runs through the same provider repository used by the app, so results and filters behave exactly like the picker.

Tips and Troubleshooting

Can't access it

Check that both devices are on the same Wi-Fi network. Confirm the configured port is not blocked by a firewall or the router.

IP keeps changing

Set a fixed (static) IP for the Android device in the Wi-Fi network settings.

Server stopped on its own

Check whether Kwiq is being killed by the system. You may need to exclude the app from battery optimization in Android settings.