# Seafile Server on OpenWrt

## Installation Notes

### First-time Installation

1.  Consider where you would like the Seafile data directory
    (`seafile-data`), Seahub data directory (`seahub-data`), and the
    Seahub database (`seahub.db`, if you will be using SQLite) to be
    stored.

    This location can be configured in `/etc/config/seafile-server`
    (using the _data_dir_ option); the default is `/usr/share/seafile`.

    If you are certain you will use a custom location, set this location
    in `/etc/config/seafile-server` before continuing with the other
    installation steps.

2.  Run one of the two setup scripts:

    *   To use SQLite:

            # setup-seafile

    *   To use MySQL:

            # setup-seafile-mysql

3.  Create a Seafile admin account:

        # create-seafile-admin

4.  Start Seafile server:

        # service seafile-server start


### Upgrading

Please run the appropriate upgrade scripts in
`/usr/share/seafile/seafile-server/upgrade` before using the new
version.

For more information, see
https://download.seafile.com/published/seafile-manual/upgrade/upgrade.md.

Note that since version 7.1, configuration files are stored in
`/etc/seafile` instead of `/usr/share/seafile`.

If you are upgrading from a version before 7.1:

1.  Run the upgrade scripts in
    `/usr/share/seafile/seafile-server/upgrade` up to 7.1.

2.  Move the `conf` and `ccnet` directories from `/usr/share/seafile` to
    `/etc/seafile`.

3.  If you are using a custom Seafile data directory location and have
    set this in `ccnet/seafile.ini`:

    Starting with 7.1, the Seafile data directory location will be taken
    from `/etc/config/seafile-server`, and any setting in
    `ccnet/seafile.ini` will be ignored.

    It is strongly recommended to migrate the custom location setting to
    `/etc/config/seafile-server` and rename/remove the `seafile.ini`
    file.

    Note that the _data_dir_ option in /etc/config/seafile-server
    determines the *parent* path to the Seafile data directory (along
    with the Seahub data directory and the Seahub database, if you are
    using SQLite). The actual Seafile data directory must be named
    `seafile-data`.

    For example, if your Seafile data directory is
    `/srv/seafile/my-seafile-data`:

    1.  Rename the directory to `seafile-data`, so now the Seafile data
        directory is `/srv/seafile/seafile-data`.

    2.  Move the Seahub data directory (`seahub-data`) from
        `/usr/share/seafile` into `/srv/seafile`.

    3.  If you are using SQLite, move the Seahub database (`seahub.db`)
        from `/usr/share/seafile` into `/srv/seafile`.

    4.  Set the _data_dir_ option in `/etc/config/seafile-server` to the
        parent path, `/srv/seafile`.

    5.  Rename or delete `ccnet/seafile.ini`.

4.  Review/update your Seahub settings. In previous versions of the
    Seahub OpenWrt package, some of Seahub's default settings (in
    `/usr/share/seafile/seafile-server/seahub/seahub/settings.py`) were
    modified from the defaults shipped by upstream.

    Starting with 7.1, Seahub's default settings are the same as
    [upstream][seahub_settings], with custom settings added to
    `/etc/seafile/conf/seahub_settings.py` during setup for new
    installations.

    To use the same custom settings in your upgraded installation, add
    these lines to `/etc/seafile/conf/seahub_settings.py`:

        # Custom settings for OpenWrt
        USE_I18N = False
        USER_PASSWORD_MIN_LENGTH = 8
        USER_STRONG_PASSWORD_REQUIRED = True

    [seahub_settings]: https://github.com/haiwen/seahub/blob/v7.1.2-server/seahub/settings.py

5.  Continue running the upgrade scripts up to the new version.