mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-17 05:41:25 +02:00
@@ -38,6 +38,10 @@ export default defineConfig({
|
||||
{ text: 'Contributors', link: '/contributors' },
|
||||
],
|
||||
},
|
||||
{
|
||||
text: 'Migration',
|
||||
items: [{ text: 'Moving to Modoboa', link: '/moving' }],
|
||||
},
|
||||
],
|
||||
|
||||
sidebar: {
|
||||
@@ -119,50 +123,58 @@ export default defineConfig({
|
||||
// console.log(pageData);
|
||||
|
||||
const baseUrl = process.env.READTHEDOCS_CANONICAL_URL
|
||||
? new URL(process.env.READTHEDOCS_CANONICAL_URL).pathname.replace(/\/$/, '')
|
||||
? new URL(process.env.READTHEDOCS_CANONICAL_URL).pathname.replace(
|
||||
/\/$/,
|
||||
''
|
||||
)
|
||||
: ''
|
||||
|
||||
const canonicalUrl = baseUrl + '/' + pageData.relativePath.replace(/\.md$/, "").replace(/^index$/, "");
|
||||
|
||||
let updtDate = new Date();
|
||||
const canonicalUrl =
|
||||
baseUrl +
|
||||
'/' +
|
||||
pageData.relativePath.replace(/\.md$/, '').replace(/^index$/, '')
|
||||
|
||||
let updtDate = new Date()
|
||||
// If no commit for a page (dev in progress), lastUpdated == NaN
|
||||
// Ensure lastUpdated is defined and a number before passing it to isNaN/new Date
|
||||
if (typeof pageData.lastUpdated === 'number' && !isNaN(pageData.lastUpdated)) {
|
||||
updtDate = new Date(pageData.lastUpdated);
|
||||
if (
|
||||
typeof pageData.lastUpdated === 'number' &&
|
||||
!isNaN(pageData.lastUpdated)
|
||||
) {
|
||||
updtDate = new Date(pageData.lastUpdated)
|
||||
}
|
||||
|
||||
pageData.frontmatter.head ??= [];
|
||||
pageData.frontmatter.head.push([
|
||||
"link",
|
||||
{ rel: "canonical", href: canonicalUrl },
|
||||
]);
|
||||
pageData.frontmatter.head.push([
|
||||
"meta",
|
||||
{ property: "og:title", content: pageData.frontmatter.title },
|
||||
]);
|
||||
pageData.frontmatter.head.push([
|
||||
"meta",
|
||||
{ property: "og:description", content: pageData.frontmatter.description },
|
||||
]);
|
||||
pageData.frontmatter.head.push([
|
||||
"meta",
|
||||
{ property: "og:type", content: 'article' },
|
||||
]);
|
||||
pageData.frontmatter.head.push([
|
||||
"meta",
|
||||
{ property: "og:url", content: canonicalUrl },
|
||||
]);
|
||||
pageData.frontmatter.head ??= []
|
||||
pageData.frontmatter.head.push([
|
||||
'link',
|
||||
{ rel: 'canonical', href: canonicalUrl },
|
||||
])
|
||||
pageData.frontmatter.head.push([
|
||||
'meta',
|
||||
{ property: 'og:title', content: pageData.frontmatter.title },
|
||||
])
|
||||
pageData.frontmatter.head.push([
|
||||
'meta',
|
||||
{ property: 'og:description', content: pageData.frontmatter.description },
|
||||
])
|
||||
pageData.frontmatter.head.push([
|
||||
'meta',
|
||||
{ property: 'og:type', content: 'article' },
|
||||
])
|
||||
pageData.frontmatter.head.push([
|
||||
'meta',
|
||||
{ property: 'og:url', content: canonicalUrl },
|
||||
])
|
||||
|
||||
// TODO: Uncomment when modoboa image is available on the public folder
|
||||
// pageData.frontmatter.head.push([
|
||||
// "meta",
|
||||
// { property: "og:image", content: 'https://xxxx/modoboa.png' },
|
||||
// ]);
|
||||
// "meta",
|
||||
// { property: "og:image", content: 'https://xxxx/modoboa.png' },
|
||||
// ]);
|
||||
|
||||
pageData.frontmatter.head.push([
|
||||
"meta",
|
||||
{ property: "og:locale", content: 'en_GB' },
|
||||
]);
|
||||
|
||||
}
|
||||
'meta',
|
||||
{ property: 'og:locale', content: 'en_GB' },
|
||||
])
|
||||
},
|
||||
})
|
||||
|
||||
+10
-19
@@ -4,7 +4,7 @@ description: Migrate from actual provider to modoboa
|
||||
head:
|
||||
- - meta
|
||||
- name: 'keywords'
|
||||
content: 'modoboa, imap, migration, constraint, offlineimap'
|
||||
content: 'modoboa, imap, migration, constraint, offlineimap'
|
||||
---
|
||||
|
||||
|
||||
@@ -35,16 +35,13 @@ It works as follows:
|
||||
instructions to migrate all declared migrations and lauching
|
||||
OfflineIMAP to start/continue migrations
|
||||
|
||||
:::: warning
|
||||
::: title
|
||||
Warning
|
||||
:::
|
||||
::: warning
|
||||
|
||||
As you probably already understood, you can\'t migrate all your accounts
|
||||
at the same time since you don\'t know their corresponding password
|
||||
(most of the time). Every account migration must be started by the
|
||||
account\'s owner.
|
||||
::::
|
||||
:::
|
||||
|
||||
### Configuration
|
||||
|
||||
@@ -61,16 +58,13 @@ Once done, *the new admin interface (v2)* will let you:
|
||||
- customize the behaviour of OfflineIMAP : go to \'Parameters \> Imap
|
||||
Migration\' from the left menu
|
||||
|
||||
:::: warning
|
||||
::: title
|
||||
Warning
|
||||
:::
|
||||
::: warning
|
||||
|
||||
**Auto create domain** option must be enabled to make this feature
|
||||
|
||||
: work. Go to \'Parameters \> Administration \> Mailboxes\' and check
|
||||
if it\'s the case.
|
||||
::::
|
||||
:::
|
||||
|
||||
To generate an OfflineIMAP configuration file, run the following
|
||||
command:
|
||||
@@ -120,14 +114,11 @@ The first time an account of your old platform successfuly log into
|
||||
Modoboa (using old credentials), a local account and a migration task
|
||||
will be created.
|
||||
|
||||
:::: warning
|
||||
::: title
|
||||
Warning
|
||||
:::
|
||||
::: warning
|
||||
|
||||
In case of domain renaming as described in Providers section, users
|
||||
must use the new email address as username for next connection attempts.
|
||||
::::
|
||||
:::
|
||||
|
||||
SuperAdmins can monitor running migrations and stop/delete them from the
|
||||
[IMAP Migration] section (left menu).
|
||||
@@ -135,14 +126,14 @@ SuperAdmins can monitor running migrations and stop/delete them from the
|
||||
## From postfixadmin
|
||||
|
||||
A dedicated command allows you to convert an existing [postfixadmin](http://postfixadmin.sourceforge.net/)
|
||||
database to a Modoboa one.
|
||||
database to a Modoboa one.
|
||||
|
||||
Consult the [documentation](https://github.com/modoboa/modoboa-pfxadmin-migrate) to know more about the process.
|
||||
|
||||
## Using CSV files
|
||||
|
||||
Modoboa allows you to import any object (domain, domain alias, mailbox
|
||||
and alias) using a simple CSV file encoded using **UTF8**.
|
||||
and alias) using a simple CSV file encoded using **UTF8**.
|
||||
|
||||
Each line corresponds to a single object and must respect one of the following format:
|
||||
|
||||
@@ -176,4 +167,4 @@ Available options can be listed using the following command:
|
||||
|
||||
``` bash
|
||||
$ python manage.py modo import -h
|
||||
```
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user