Migration Guide

Image Migration to Luster

Copy old image files into Luster during an import.

Getting Started

Overview

Image migration is part of the import wizard. The image fields are on the Options step. It copies images from your old script into Luster's own upload folders and gives it a new safe filename. Your old image file is not deleted or changed.

Note: FanUpdate does not use image migration because it imports update/blog text, not image files.

What Image Migration Can Copy

Image migration can copy things including (but not limited to):

  • Owned & Joined listing images
  • Affiliate images
  • Wishlist images
  • Listing codes/images

The exact image types depend on the source you are importing from. The following image formats are accepted:

  • JPEG
  • PNG
  • GIF
  • WebP

Files that are not valid images are skipped.

What Luster Does Not Copy

Luster does not copy:

  • Images pasted inside old HTML template text
  • Images from unrelated folders that the import does not know about
  • Broken image links
  • Files that no longer exist
  • Non-image files
  • Images hidden behind a login
  • Images only visible on your computer but not available to the server

If an image is skipped, the related information can still be succesfully imported, but it will have no images attached to the data.


Before You Start

  1. Back up your previous database, site files and images! It is much easier to retry image migration when the old files are still available.
  2. Back up your Luster database (if existing).
  3. Keep the old image files available until after you check the import.
Methods

Image Migration Options

Luster can find images in three ways:

Method Best when
Server Path Luster and the old files are on the same server.
Live Site URL The old images are still visible online.
ZIP Upload You have the image folders on your computer or your host blocks remote fetching.

You can provide more than one fallback. If a ZIP is uploaded, the ZIP takes priority.

Method 1: Server Path

Use Server Path when Luster can read the old files directly from the same server. A server path is not the same as a website URL.

Use this when:

  • Your old site and Luster are on the same hosting account.
  • You are running both on local XAMPP.
  • You know the folder path on the server.

Do not enter a URL in this field.

Examples
/home/username/public_html/enthusiast
/home/username/public_html/listingadmin/images
C:\xampp\htdocs\old-site\images

Method 2: Live Site URL

Use Live Site URL when the old images are still publicly reachable online.

Use this when:

  • The old site is still online.
  • The old image URLs work in your browser.
  • Luster is allowed to fetch files over HTTP or HTTPS.

Luster only fetches normal public http:// or https:// URLs. Private or local network URLs are not used.

Examples
https://example.com/enthusiast
https://example.com/listingadmin/images
https://example.com/codesort/images
Remote fetching can be slower.

If your host blocks outgoing web requests, use ZIP upload instead.

Method 3: ZIP Upload

Use ZIP Upload when you have the old image files on your computer. The ZIP upload accepts .zip files up to 50 MB.

The folder structure inside the ZIP does not need to be perfect. Luster matches images by filename.

ZIP Contents
old-images.zip
affiliates/button1.gif
affiliates/button2.gif
joined/sailor-moon.png
codes/50x50-001.gif

If the old database says the image is button1.gif, Luster searches the ZIP for a file named button1.gif. It does not matter whether the file is inside affiliates/, buttons/, or another folder inside the ZIP.


Which Method Should I Choose?

If you are not sure, use this order:

  1. Try Server Path if Luster and the old images are on the same server.
  2. Try Live Site URL if the old images are still online.
  3. Use ZIP Upload if the first two are confusing or blocked.

For many users, ZIP upload is the easiest because you can gather the old image folders on your computer and let Luster match files by filename.

Walkthrough

Step-by-Step Instructions

  1. Start the Import Wizard

    In the Luster admin panel, open the import wizard. Choose your source on the Source step: Enthusiast, Listing Admin, Fanatically, CodeSort, or BellaBuffs.

  2. Connect to the Old Data

    On the Connect step, connect to the old database or upload the SQL dump.

    Image migration needs the old database information because the database tells Luster which image filenames belong to which records.

  3. Open the Options Step

    On the Options step, look for Image Migration.

    Depending on the source, Luster may show image migration as automatic or optional, but it's usually automatic. If there is a Migrate Images checkbox, leave it checked.

  4. Enter Image Details

    Choose the method that best fits your needs:

    • Enter a Server Path
    • Enter a Live Site URL
    • Upload a ZIP file

    You can leave fields blank if Luster can read the old script's image settings. If you know the path or URL, entering it gives Luster a better fallback.

  5. Preview the Import

    Click Preview Import. The Preview step shows what Luster found before it copies everything. Look for warnings about images, paths, or missing files.

  6. Run the Import

    If the preview looks right, run the import. The Done step shows:

    • How many records were imported
    • How many images were copied
    • How many images failed
    • Warnings for anything Luster could not copy
  7. Check the Imported Images

    After the import:

    • Open a few imported listings.
    • Check affiliate images.
    • Check joined listing images.
    • Check code images if you imported codes.
    • Check wishlist images if you imported wishlist data.

    If some images are missing, keep reading. Missing images are often fixable.

Per-Source Details

Source-Specific Notes

Enthusiast

Luster can read common Enthusiast image settings automatically. Common Enthusiast folders include:

Folders
affiliates/
joined/
owned/

If you enter a server path for Enthusiast, enter the old Enthusiast install folder path. You can find this in your Enthusiast admin panel by going to Settings → Technical Settings ↝ Installation path. It should look something like this:

Example Path
/home/you/yoursite.com/enthusiast/

Luster can then look inside common folders such as:

Resolved Paths
/home/you/yoursite.com/enthusiast/affiliates
/home/you/yoursite.com/enthusiast/joined
/home/you/yoursite.com/enthusiast/owned

Listing Admin

Listing Admin may store different images in different folders. Luster tries to read Listing Admin's saved image paths first. If those old settings are correct, you may not need to enter anything.

If you do enter a path manually, use the folder that contains the image files. You can usually find this information in your Listing Admin admin panel in Options → Options (again) → Paths. It should look something like this:

Path
/home/you/yoursite.com/listingadmin/admin/images/

If only some Listing Admin images copy, ZIP upload may be easier because Luster can match files by filename across folders.

Fanatically

Fanatically image paths are usually read from Fanatically’s settings. If you enter a fallback server path, use the old Fanatically install folder:

Example Path
/home/you/yoursite.com/fanatically/

Fanatically imports can include several image types, such as listings, affiliates, joined listings, wishlist entries, and codes.

CodeSort

CodeSort is specifically for images. The image folder is often the old images_folder value from CodeSort:

Examples
/home/you/yoursite.com/codesort/images
https://yoursite.com/codesort/images

If you are unsure where the CodeSort images live, ZIP the CodeSort image folder and upload it on the Options step.

FanUpdate

FanUpdate does not use image migration in Luster's import wizard. FanUpdate imports update/blog entries into the News Feed add-on.

Filenames

What Happens to Filenames

Luster does not keep the old filename. Instead, it creates a new filename:

Example
Old filename: button1.gif
New filename: af_8f9a1c2d3e4b5a6f.gif

Why aren't original names preserved?

This is intentional. It is a security requirement built into Luster from the start. Three reasons:

  • Stops dangerous filenames from being executed. If someone uploads a file called evil.php and the original name is kept, a misconfigured server could run it directly. A random name like af_3a9b2c1d.gif cannot be predicted or targeted.
  • Stops people from guessing what is in your uploads folder. If filenames are predictable, someone who finds one file can probe for others. Random names make the folder non-guessable.
  • Stops files from overwriting each other. Two listings with a banner.jpg would silently replace each other without randomization.

The original filename is never stored in the database either. That is also deliberate — keeping it would be its own security risk.

Where are files stored?

Luster stores migrated images in folders such as:

Destinations
public/uploads/listings
public/uploads/affiliates
public/uploads/joined
public/uploads/codes
public/uploads/wishlist

What Happens When an Image Is Missing

Missing images do not stop the import. If Luster cannot find or copy an image, it imports the record without that image and adds a warning to the import report:

Warning
Image not copied: button1.gif

After that, you can:

  • Re-run the import with a better path, URL, or ZIP.
  • Add the image manually in the admin panel.
  • Leave the record without an image.
Retry

Re-Running Image Migration

You can re-run an import if images were missing the first time. For the safest retry:

  1. Choose Skip unless you intentionally want to overwrite data.
  2. Provide a better server path, live URL, or ZIP.
  3. Run the import again.
  4. Check the Done report.

In many cases, Luster can fill in image fields that were blank from the first run. If an image still does not appear, add it manually in the related admin section.

Do not judge the whole import by one missing image. A few missing files usually means those files were missing, renamed, or stored in a different folder.

Troubleshooting

Edge Cases & FAQ

I entered a URL in Server Path

Use Live Site URL for URLs. Server Path should look like:

Correct
/home/username/public_html/old-site
C:\xampp\htdocs\old-site
I entered a server path in Live Site URL

Use Server Path for server folders. Live Site URL should look like:

Correct
https://example.com/old-site
My ZIP uploaded but images were not found

Luster matches files by filename. Check whether the database expects button1.gif but your ZIP contains button-1.gif. Those are different filenames.

My ZIP has duplicate filenames

If the ZIP has two files with the same filename in different folders, Luster may match the first one it finds. If possible, use unique filenames before making the ZIP.

The old website blocks hotlinking

If the live URL works in your browser but Luster still cannot fetch images, the old server may block automated requests. Use Server Path or ZIP Upload instead.

The image is too large or not a real image

Luster checks that the file is a real JPEG, PNG, GIF, or WebP image. Invalid files are skipped. For ZIP and remote image copying, individual images over 10 MB may be skipped.

Images inside old HTML templates are missing

Luster only migrates image fields it knows from the old database or import source. If an old layout template contains an <img> tag referencing a layout graphic, that image is part of your old layout, not a listing/affiliate/code image. Move it manually if you still need it.

CodeSort images imported without width or height

CodeSort can sometimes fill width and height from the code size even when the actual image file was not copied. Check the image migration report to see whether the image itself copied.

I deleted the old images too soon

Restore them from backup if possible, then re-run the import or add images manually.

Does image migration delete my old images?

No. Luster copies images. It does not delete the old files.

Does Luster keep the old filenames?

No. Luster creates new randomized filenames intentionally. Refer to the What Happens to Filenames section to understand why.

Can I skip image migration?

For some sources, Luster tries image migration automatically because the old script stores image settings in its database. For others, there may be a Migrate images checkbox. If you truly do not want images copied, turn off the checkbox if one appears. If the source uses automatic image migration, let the import finish and remove unwanted images afterward from the related admin screens.

Which image method is safest?

Server Path is usually fastest when available. ZIP Upload is often easiest when you are not sure what path your host uses.

Can I upload more than one ZIP?

The wizard uses one uploaded ZIP at a time. If you upload another ZIP before running the import, it replaces the previous ZIP for that import session.

What is the ZIP size limit?

The ZIP upload limit is 50 MB.

What if my image folders are bigger than 50 MB?

Use Server Path if the old files are on the same server. Otherwise, split the import work by source where possible, or migrate the remaining images manually after import.

Can Luster fetch images from my private computer?

No. A Live Site URL must be publicly reachable by the server running Luster. If the files are only on your computer, use ZIP Upload.

Can I fix missing images later?

Yes. You can re-run the import with better image settings or upload images manually in the relevant admin screen.

Why did the record import even though the image failed?

Because missing images should not block your data migration. Luster imports the data it can and reports image problems separately.