SeeDMS installation
Below is the exact procedure that worked for your specific machine.
Environment
Online machine
- Ubuntu Linux
- Internet access
Offline machine
- Windows 11
- XAMPP installed in:
D:\xampp
- SeedDMS installed in:
D:\xampp\htdocs\seeddms
- SeedDMS version:
6.0.40
Step 1 - Download SeedDMS on Ubuntu
Download:
seeddms-6.0.40
and extract it.
Step 2 - Remove symlink problems for Windows
On Ubuntu:
tar xzf seeddms-6.0.40.tar.gz
cp -aL seeddms-6.0.40 seeddms-win
zip -r seeddms-win.zip seeddms-win
The important part is:
cp -aL
which dereferences symlinks and converts them to real files.
Copy the ZIP to USB.
Step 3 - Install XAMPP on Windows
Install:
D:\xampp
Required components:
- Apache
- MySQL
- PHP
Start:
Apache
MySQL
Verify:
http://localhost
opens the XAMPP page.
Step 4 - Extract SeedDMS
Extract ZIP to:
D:\xampp\htdocs\seeddms
Final structure became:
D:\xampp\htdocs\seeddms\
conf
data
vendor
www
seeddms
seeddms-6.0.40
This structure worked.
Do NOT change it.
Step 5 - Enable required PHP extensions
Open:
D:\xampp\php\php.ini
Enable:
extension=gd
extension=zip
extension=sqlite3
extension=pdo_sqlite
Remove any leading semicolon.
Example:
;extension=gd
becomes:
extension=gd
Save.
Restart Apache.
Step 6 - Open Installer
Open:
http://localhost/seeddms/www/install
You should see:
Welcome to installation of SeedDMS
Click:
Start Installation
Step 7 - Server Settings Page
Installer prefilled:
Root directory:
D:/xampp/htdocs/seeddms/www/
Http Root:
/seeddms/www/install/install.php/
Content directory:
D:\xampp\htdocs\seeddms\data\
Directory for full text index:
D:\xampp\htdocs\seeddms\data\lucene\
Directory for partial uploads:
D:\xampp\htdocs\seeddms\data\staging\
Cache directory:
D:\xampp\htdocs\seeddms\data\cache\
Change ONLY:
Http Root
from:
/seeddms/www/install/install.php/
to:
/seeddms/www/
Leave all other paths unchanged.
Step 8 - Database Page
Although installer initially mentioned SQLite, it asked for:
Server name
Username
Password
Create database tables
Use:
Server name: localhost
Username: root
Password: (blank)
Create database tables: checked
Step 9 - Fix Existing Database Error
Installer failed with:
tblACLs already exists
Cause:
D:\xampp\htdocs\seeddms\data\content.db
already existed and contained tables.
File size was:
380 KB
Rename:
content.db
to:
content.db.old
or delete it.
Step 10 - Run Installer Again
Open:
http://localhost/seeddms/www/install
Repeat installation.
Installer successfully created a fresh:
D:\xampp\htdocs\seeddms\data\content.db
and completed.
Step 11 - Final Message
Installer reported:
The installation has been successfully completed.
and instructed:
Delete ENABLE_INSTALL_TOOL
Step 12 - Disable Installer
Go to:
D:\xampp\htdocs\seeddms\conf
Delete:
ENABLE_INSTALL_TOOL
or rename it:
ENABLE_INSTALL_TOOL.old
Step 13 - Login
Open:
http://localhost/seeddms/www/
Login:
Username: admin
Password: admin
Change password immediately.
Important Files
SeedDMS data
D:\xampp\htdocs\seeddms\data\
Contains:
content.db
cache
lucene
staging
Configuration
D:\xampp\htdocs\seeddms\conf\
Backup Procedure
To back up the entire SeedDMS installation, copy:
D:\xampp\htdocs\seeddms\data
D:\xampp\htdocs\seeddms\conf
Those two folders contain:
- documents
- metadata
- users
- permissions
- configuration
For a full machine backup, also keep:
D:\xampp\htdocs\seeddms
and your XAMPP installation under:
D:\xampp
This is the exact sequence that succeeded on your Windows 11 offline system with SeedDMS 6.0.40.
Now that SeedDMS is running, the biggest mindset change is:
Don't think of it as a shared folder. Think of it as a document library with version control, permissions, metadata, search, and workflows. (seeddms.dalescott.net)
First Login
Open:
http://localhost/seeddms/www/
Login:
admin
admin
Immediately change the password.
Recommended Folder Structure
For a personal/offline installation, create top-level folders like:
Documents
├── Personal
├── Finance
├── Insurance
├── Property
├── Medical
├── Manuals
├── Projects
└── Archive
To create a folder:
- Open a folder.
- Folder Menu → Add Subfolder.
- Enter name.
- Save. (seeddms.dalescott.net)
Uploading Documents
Method 1 (Recommended)
- Open destination folder.
- Click Add Document.
- Select file.
- Enter:
- Name
- Comment
- Keywords
- Save.
Example
Instead of:
LIC_POLICY_2025_FINAL.pdf
Use:
Name:
LIC Policy
Keywords:
insurance life lic
Comment:
Policy issued 2025
Later, searching becomes much easier.
Version Control (Very Important)
Suppose you upload:
HousePlan.pdf
Six months later you receive a revised version.
Do not upload as a new document.
Instead:
- Open document.
- Choose:
Add New Version
- Upload revised file.
SeedDMS keeps all versions and tracks history. (seeddms.dalescott.net)
Search
SeedDMS can search:
- Document names
- Comments
- Keywords
- Metadata
- Full text (if indexing is configured) (seeddms.org)
Example searches:
lic
invoice
passport
tax 2025
Tags / Keywords
Use consistent keywords.
Examples:
Document | Keywords |
|---|---|
Passport | identity government |
PAN Card | identity tax |
Insurance Policy | insurance life |
Car RC | vehicle registration |
Good keywords make searching far easier than folder navigation.
Access Rights
Even on a single-PC installation it's useful to understand.
Each document and folder can have:
- Read access
- Write access
- Full control
assigned to:
- Users
- Groups (seeddms.dalescott.net)
If later you add family members, you can create:
Family
Parents
Children
groups and restrict folders accordingly.
Users
Admin menu → Users
Create users such as:
father
mother
accounts
guest
Roles include Administrator, User, and Guest. (seeddms.dalescott.net)
Workflows (Advanced)
SeedDMS supports review and approval workflows. (seeddms.dalescott.net)
Example:
Draft Contract
↓
Review by Legal
↓
Approval by Manager
↓
Released
For a personal installation you can ignore workflows initially.
Useful Personal Use Cases
1. Insurance Vault
Insurance
├── LIC
├── Health
├── Vehicle
└── Home
Upload:
- Policies
- Premium receipts
- Claim documents
2. Medical Records
Medical
├── Prescriptions
├── Lab Reports
├── Scans
└── Vaccinations
3. House Documents
Property
├── Sale Deed
├── Tax Receipts
├── Electricity
└── Maintenance
4. Software Licenses
Licenses
├── Windows
├── Office
├── CAD
└── Utilities
Store:
- License PDFs
- Keys
- Purchase invoices
Backup (Most Important)
Your actual data lives in:
D:\xampp\htdocs\seeddms\data
Configuration lives in:
D:\xampp\htdocs\seeddms\conf
For backup, copy both folders. SeedDMS's own documentation notes that conf and data are the critical directories that must be preserved. (seeddms.org)
What NOT To Do
Don't edit files inside data
Never manipulate files directly inside:
D:\xampp\htdocs\seeddms\data
Use the SeedDMS interface.
Don't replace documents manually
Use:
Add New Version
instead.
Don't keep installer enabled
You already removed:
ENABLE_INSTALL_TOOL
which is correct.
A Good Beginner Workflow
For the first week:
- Create folders:
- Personal
- Finance
- Insurance
- Medical
- Manuals
- Upload 20–30 documents.
- Add meaningful keywords.
- Practice:
- Search
- New Version
- Move Document
- Delete Document
- Take a backup of:
dataconf
Once you're comfortable with that, the next useful topics are:
- Full-text indexing (search inside PDFs)
- OCR for scanned documents
- WebDAV drive mapping
- Multi-user permissions
- Automated document review workflows.
there can be file size limits, but in your setup the limit is usually determined by PHP/XAMPP, not by SeedDMS itself.
Check your current limits
Open:
http://localhost/dashboard/phpinfo.php
Search for:
upload_max_filesize
post_max_size
memory_limit
max_execution_time
Typical XAMPP defaults are often:
upload_max_filesize = 40M
post_max_size = 40M
or similar.
The maximum uploadable file is effectively limited by the smaller of:
upload_max_filesize
post_max_size
Increase the limit
Edit:
D:\xampp\php\php.ini
Find:
upload_max_filesize=
post_max_size=
memory_limit=
max_execution_time=
max_input_time=
For example, for large PDFs, videos, CAD drawings, etc.:
upload_max_filesize = 1024M
post_max_size = 1024M
memory_limit = 2048M
max_execution_time = 600
max_input_time = 600
Save the file.
Restart Apache from XAMPP.
Practical recommendations
For a personal offline document archive:
upload_max_filesize = 512M
post_max_size = 512M
is usually more than enough.
For large scanned PDFs or engineering files:
upload_max_filesize = 2048M
post_max_size = 2048M
can work if you have sufficient disk space and RAM.
SeedDMS storage
Uploaded files are stored in:
D:\xampp\htdocs\seeddms\data
so the real upper limit becomes:
- Free disk space
- PHP limits
- Windows filesystem limits
There is no small built-in SeedDMS document limit such as "10 MB per file."
Quick test
Upload:
- A 1 MB file
- A 50 MB file
- A 200 MB file
If a file is rejected, note the exact error message. It will usually indicate whether the limit is coming from:
- PHP (
upload_max_filesize) - Web server timeout
- SeedDMS configuration
For your offline Windows setup, I would set:
upload_max_filesize = 1024M
post_max_size = 1024M
and restart Apache. That gives you uploads up to roughly 1 GB per file.
Since SeedDMS is running on your Windows 11 PC at:
D:\xampp
other machines on your network can access it through the PC's IP address.
Step 1: Find the IP address of the SeedDMS PC
On the Windows PC, open Command Prompt:
ipconfig
Look for something like:
IPv4 Address . . . . . . : 192.168.1.100
Write down the IPv4 address.
Step 2: Test from the SeedDMS PC
Open a browser on the same PC:
http://192.168.1.100/seeddms/www/
(replace with your actual IP)
If this works locally, continue.
Step 3: Allow Apache through Windows Firewall
On the SeedDMS PC:
Open:
Windows Defender Firewall
Go to:
Allow an app through firewall
Ensure:
Apache HTTP Server
is allowed on:
- Private networks
- Domain networks (if applicable)
If Apache isn't listed, create a rule.
Manual firewall rule
Open PowerShell as Administrator:
New-NetFirewallRule `
-DisplayName "Apache HTTP" `
-Direction Inbound `
-Protocol TCP `
-LocalPort 80 `
-Action Allow
Step 4: Access from another machine
From another PC on the same LAN:
http://192.168.1.100/seeddms/www/
You should see the SeedDMS login page.
Step 5: Optional - Use a hostname
Instead of:
http://192.168.1.100/seeddms/www/
you can use the Windows computer name.
Find it:
hostname
Suppose it returns:
DOCSERVER
Then try:
http://DOCSERVER/seeddms/www/
This often works automatically on small Windows networks.
Step 6: Multiple users
Create separate users in SeedDMS:
Admin → Users → Add User
For example:
john
mary
accounts
Avoid sharing the admin account.
If another machine cannot connect
Check from the other machine:
ping 192.168.1.100
If ping fails:
- Network issue
- Firewall issue
If ping works but browser fails:
- Apache firewall rule missing
- Apache listening only on localhost
Verify Apache is listening on all interfaces
Open:
D:\xampp\apache\conf\httpd.conf
Search for:
Listen 80
It should be:
Listen 80
and not:
Listen 127.0.0.1:80
If it is bound to 127.0.0.1, change it to:
Listen 80
and restart Apache.
Recommended URL for your setup
Once everything is working, users should use:
http://<SeedDMS-PC-IP>/seeddms/www/
Example:
http://192.168.1.100/seeddms/www/
That will work for any machine on the same local network.