# Transfer To a New Domain

This guide provides a step-by-step approach to move your Concord CRM installation to a different domain. It's important to follow these steps carefully to ensure that your data is properly transferred and the application functions correctly in its new environment.

Concord CRM is a Laravel-based application, if you are already familiar with Laravel, many of these steps will be recognizable. However, specific steps tailored for Concord CRM are outlined to ensure a smooth transition.

Before starting with the migration, please ensure that:

- It's important to ensure that your new server meets all the requirements for running Concord CRM.
- Always create backups before starting the transfer process to avoid any data loss.

## Export Your Database

- Utilize a database management tool like phpMyAdmin to export your database.
- Ensure to select the appropriate database and choose a suitable format (e.g., SQL) for export.

## Zip and Transfer Files

- Compress (zip) all the Concord CRM files located in your current server/location.
- Transfer this .zip file to your new server/location via FTP/SFTP or any other file transfer method.

## Unzip Files

- On the new server/location, unzip the transferred .zip file to extract all the Concord CRM files.
- If you have included the folder `public/storage` in the .zip file, ensure to delete this folder in your new location, this folder is a symlink, you will re-create this folder in "Finalize Migration" step below by executing the "storage-link" tool.

## Import Database

- Import the previously exported database into the new server.
- This can be done through phpMyAdmin or any other database management tool that you prefer.

## Update Environment Settings

- Edit the `.env` file in your new location to update the database credentials and URL.
- Ensure that the `DB_HOST`, `DB_DATABASE`, `DB_USERNAME`, and `DB_PASSWORD` fields match your new database's details.
- Ensure that the `APP_URL` matches your new location URL.

For more detailed information on editing the .env file, refer to the documentation.

## Clear Cache

- In your new location, navigate to the `bootstrap/cache` directory.
- Delete all the cache files present in this directory.
- If the new location is on the same main domain as the old location, clear your browser cache.

## Ensure Proper Domain Document Root

Your new domain must ensure that the document root is pointed to the `public` directory, as you have previously had a working installation, probably you had configured the document root to point to the `public` directory for your old installation, you must make sure to do the same for your new domain.

Please refer to the installation guide for more detailed guide on how to change your new subdomain document root.

## Finalize Migration

- Try accessing your application through the new domain URL and log-in as an admin user.
- Check and make sure that all requirements are met, you will be able to see a warning message on top of the dashboard with a link to check the requirements and confirm them.
- After confirming the requirements, navigate to Settings -> System -> Tools and execute the "storage-link". tool.
- Execute the "optimize" tool to cache common files.

### Configure Cron Job

- Ensure to configure the cron job for your new location, please refer to the cron job guide for more detailed information.

### Update Related URL's

- If you have configured the Twilio integration, navigate to Settings -> Integrations->Twilio and update the app related URL.
- Any user that has configured calendar synchronization, must disconnect and re-connect the calendar synchronization to ensure the webhooks for synchronization are using the new URL.

## Clean Up

- Once you confirm that the application is functioning correctly on the new domain, proceed to delete the old installation from the old server/location.
- Remove any cron jobs related to the old installation.