Skip to content

Commit

Permalink
feat: add custom DNS servers
Browse files Browse the repository at this point in the history
  • Loading branch information
gauthier-th committed Jun 18, 2024
1 parent 38ad875 commit 7ce5925
Show file tree
Hide file tree
Showing 3 changed files with 47 additions and 0 deletions.
10 changes: 10 additions & 0 deletions server/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,16 @@ app
const settings = getSettings().load();
restartFlag.initializeSettings(settings.main);

// Overwrite DNS servers
if (settings.main.overwriteDnsServers) {
cacheable.servers = settings.main.overwriteDnsServers
.split(',')
.map((server) => server.trim());
logger.info('Using custom DNS servers', {
label: 'Settings',
});
}

// Migrate library types
if (
settings.plex.libraries.length > 1 &&
Expand Down
1 change: 1 addition & 0 deletions server/lib/settings/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,7 @@ export interface MainSettings {
mediaServerType: number;
partialRequestsEnabled: boolean;
locale: string;
overwriteDnsServers?: string;
}

interface PublicSettings {
Expand Down
36 changes: 36 additions & 0 deletions src/components/Settings/SettingsMain/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,9 @@ const messages = defineMessages({
validationApplicationUrlTrailingSlash: 'URL must not end in a trailing slash',
partialRequestsEnabled: 'Allow Partial Series Requests',
locale: 'Display Language',
overwriteDnsServers: 'Overwrite Default DNS Servers',
overwriteDnsServersTip:
'A comma-separated list of DNS server to use instead of the default ones',
});

const SettingsMain = () => {
Expand Down Expand Up @@ -134,6 +137,7 @@ const SettingsMain = () => {
partialRequestsEnabled: data?.partialRequestsEnabled,
trustProxy: data?.trustProxy,
cacheImages: data?.cacheImages,
overwriteDnsServers: data?.overwriteDnsServers,
}}
enableReinitialize
validationSchema={MainSettingsSchema}
Expand All @@ -150,6 +154,7 @@ const SettingsMain = () => {
partialRequestsEnabled: values.partialRequestsEnabled,
trustProxy: values.trustProxy,
cacheImages: values.cacheImages,
overwriteDnsServers: values.overwriteDnsServers,
});
mutate('/api/v1/settings/public');
mutate('/api/v1/status');
Expand Down Expand Up @@ -427,6 +432,37 @@ const SettingsMain = () => {
/>
</div>
</div>
<div className="form-row">
<label
htmlFor="overwriteDnsServers"
className="checkbox-label"
>
<span className="mr-2">
{intl.formatMessage(messages.overwriteDnsServers)}
</span>
<SettingsBadge badgeType="advanced" className="mr-2" />
<SettingsBadge badgeType="restartRequired" />
<span className="label-tip">
{intl.formatMessage(messages.overwriteDnsServersTip)}
</span>
</label>
<div className="form-input-area">
<div className="form-input-field">
<Field
id="overwriteDnsServers"
name="overwriteDnsServers"
type="text"
/>
</div>
{errors.overwriteDnsServers &&
touched.overwriteDnsServers &&
typeof errors.overwriteDnsServers === 'string' && (
<div className="error">
{errors.overwriteDnsServers}
</div>
)}
</div>
</div>
<div className="actions">
<div className="flex justify-end">
<span className="ml-3 inline-flex rounded-md shadow-sm">
Expand Down

0 comments on commit 7ce5925

Please sign in to comment.