allow custom domain support to be toggled and IP to be configured
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
This commit is contained in:
förälder
0a6a35e216
incheckning
f6b19251aa
|
@ -39,8 +39,12 @@ NON_USER_COOLDOWN=0
|
|||
# Max number of visits for each link to have detailed stats
|
||||
DEFAULT_MAX_STATS_PER_LINK=5000
|
||||
|
||||
# Enable support for custom domains
|
||||
CUSTOM_DOMAIN_ENABLED=false
|
||||
# Use HTTPS for links with custom domain
|
||||
CUSTOM_DOMAIN_USE_HTTPS=false
|
||||
# IP address to direct custom domains to
|
||||
CUSTOM_DOMAIN_IP=
|
||||
|
||||
# A passphrase to encrypt JWT. Use a long and secure key.
|
||||
JWT_SECRET=securekey
|
||||
|
|
|
@ -75,7 +75,7 @@ const SettingsDomain: FC = () => {
|
|||
<b>example.com/shorturl.</b>
|
||||
</Text>
|
||||
<Text mb={4}>
|
||||
Point your domain A record to <b>192.64.116.170</b> then add the domain
|
||||
Point your domain A record to <b>{process.env.CUSTOM_DOMAIN_IP}</b> then add the domain
|
||||
via form below:
|
||||
</Text>
|
||||
{domains.length ? (
|
||||
|
|
|
@ -14,29 +14,53 @@ import { useStoreState } from "../store";
|
|||
|
||||
const SettingsPage: NextPage = () => {
|
||||
const email = useStoreState(s => s.auth.email);
|
||||
const domain = process.env.CUSTOM_DOMAIN_ENABLED;
|
||||
|
||||
if (!domain) {
|
||||
return (
|
||||
<AppWrapper>
|
||||
<Col width={600} maxWidth="90%" alignItems="flex-start" pb={80} mt={4}>
|
||||
<H1 alignItems="center" fontSize={[24, 28]} light>
|
||||
Welcome,{" "}
|
||||
<Span pb="2px" style={{ borderBottom: "2px dotted #999" }}>
|
||||
{email}
|
||||
</Span>
|
||||
.
|
||||
</H1>
|
||||
<Divider mt={4} mb={48} />
|
||||
<SettingsPassword />
|
||||
<Divider mt={4} mb={48} />
|
||||
<SettingsApi />
|
||||
<Divider mt={4} mb={48} />
|
||||
<SettingsDeleteAccount />
|
||||
</Col>
|
||||
<Footer />
|
||||
</AppWrapper>
|
||||
);
|
||||
} else {
|
||||
return (
|
||||
<AppWrapper>
|
||||
<Col width={600} maxWidth="90%" alignItems="flex-start" pb={80} mt={4}>
|
||||
<H1 alignItems="center" fontSize={[24, 28]} light>
|
||||
Welcome,{" "}
|
||||
<Span pb="2px" style={{ borderBottom: "2px dotted #999" }}>
|
||||
{email}
|
||||
</Span>
|
||||
.
|
||||
</H1>
|
||||
<Divider mt={4} mb={48} />
|
||||
<SettingsDomain />
|
||||
<Divider mt={4} mb={48} />
|
||||
<SettingsPassword />
|
||||
<Divider mt={4} mb={48} />
|
||||
<SettingsApi />
|
||||
<Divider mt={4} mb={48} />
|
||||
<SettingsDeleteAccount />
|
||||
</Col>
|
||||
<Footer />
|
||||
</AppWrapper>
|
||||
);
|
||||
<AppWrapper>
|
||||
<Col width={600} maxWidth="90%" alignItems="flex-start" pb={80} mt={4}>
|
||||
<H1 alignItems="center" fontSize={[24, 28]} light>
|
||||
Welcome,{" "}
|
||||
<Span pb="2px" style={{ borderBottom: "2px dotted #999" }}>
|
||||
{email}
|
||||
</Span>
|
||||
.
|
||||
</H1>
|
||||
<Divider mt={4} mb={48} />
|
||||
<SettingsDomain />
|
||||
<Divider mt={4} mb={48} />
|
||||
<SettingsPassword />
|
||||
<Divider mt={4} mb={48} />
|
||||
<SettingsApi />
|
||||
<Divider mt={4} mb={48} />
|
||||
<SettingsDeleteAccount />
|
||||
</Col>
|
||||
<Footer />
|
||||
</AppWrapper>
|
||||
);
|
||||
};
|
||||
};
|
||||
|
||||
export default SettingsPage;
|
||||
|
|
|
@ -22,7 +22,9 @@ const env = cleanEnv(process.env, {
|
|||
USER_LIMIT_PER_DAY: num({ default: 50 }),
|
||||
NON_USER_COOLDOWN: num({ default: 10 }),
|
||||
DEFAULT_MAX_STATS_PER_LINK: num({ default: 5000 }),
|
||||
CUSTOM_DOMAIN_ENABLED: bool({ default: false }),
|
||||
CUSTOM_DOMAIN_USE_HTTPS: bool({ default: false }),
|
||||
CUSTOM_DOMAIN_IP: str({ default: "" }),
|
||||
JWT_SECRET: str(),
|
||||
ADMIN_EMAILS: str({ default: "" }),
|
||||
GOOGLE_SAFE_BROWSING_KEY: str({ default: "" }),
|
||||
|
|
Laddar…
Referens i nytt ärende