update /frappe/agent - /jingrow/agent

This commit is contained in:
jingrow 2025-12-23 19:30:11 +08:00
parent c641f07c64
commit 64dcfee067
146 changed files with 378 additions and 378 deletions

View File

@ -1,12 +1,12 @@
<div align="center" markdown="1"> <div align="center" markdown="1">
<img src="https://frappe.io/files/Group%202%20(1).png" alt="Press logo" width="80"/> <img src="https://framework.jingrow.com/files/Group%202%20(1).png" alt="Press logo" width="80"/>
<h1>Press</h1> <h1>Press</h1>
**Full Service Cloud Hosting For The Frappe Stack - Powers Frappe Cloud** **Full Service Cloud Hosting For The Frappe Stack - Powers Frappe Cloud**
[![codecov](https://codecov.io/gh/frappe/press/branch/master/graph/badge.svg?token=0puvH0jUx9)](https://codecov.io/gh/frappe/press) [![codecov](https://codecov.io/gh/frappe/press/branch/master/graph/badge.svg?token=0puvH0jUx9)](https://codecov.io/gh/frappe/press)
[![unittests](https://github.com/frappe/press/actions/workflows/main.yaml/badge.svg)](https://github.com/frappe/press/actions/workflows/main.yaml) [![unittests](http://git.jingrow.com/jingrow/jcloude/actions/workflows/main.yaml/badge.svg)](http://git.jingrow.com/jingrow/jcloude/actions/workflows/main.yaml)
</div> </div>
@ -15,9 +15,9 @@
</div> </div>
<br /> <br />
<div align="center"> <div align="center">
<a href="https://frappe.io/press">Website</a> <a href="https://framework.jingrow.com/press">Website</a>
- -
<a href="https://docs.frappe.io/cloud/">Documentation</a> <a href="https://docs.framework.jingrow.com/cloud/">Documentation</a>
</div> </div>
## Press ## Press
@ -59,7 +59,7 @@ Additionally, customers lacked full control over their servers—no SSH access,
- [**Frappe UI**](https://github.com/frappe/frappe-ui): A Vue-based UI library, to provide a modern user interface. The Frappe UI library provides a variety of components that can be used to build single-page applications on top of the Frappe Framework. - [**Frappe UI**](https://github.com/frappe/frappe-ui): A Vue-based UI library, to provide a modern user interface. The Frappe UI library provides a variety of components that can be used to build single-page applications on top of the Frappe Framework.
- [**Agent**](https://github.com/frappe/agent): A flask app designed to work along with Press. It provides a CLI interface for Press to communicate with the sites and benches. - [**Agent**](http://git.jingrow.com/jingrow/agent): A flask app designed to work along with Press. It provides a CLI interface for Press to communicate with the sites and benches.
- [**Docker**](https://www.docker.com): An open-source platform that enables developers to build, package, and deploy applications in lightweight, portable containers. - [**Docker**](https://www.docker.com): An open-source platform that enables developers to build, package, and deploy applications in lightweight, portable containers.
@ -67,7 +67,7 @@ Additionally, customers lacked full control over their servers—no SSH access,
## Setup ## Setup
To self host or to setup Press locally follow the steps in the [Local Development Environment Setup Guide](https://docs.frappe.io/cloud/local-fc-setup) or [this YouTube video](https://www.youtube.com/watch?v=Xb9QHnUrIEk) To self host or to setup Press locally follow the steps in the [Local Development Environment Setup Guide](https://docs.framework.jingrow.com/cloud/local-fc-setup) or [this YouTube video](https://www.learn.jingrow.com/watch?v=Xb9QHnUrIEk)
### Pre-commit ### Pre-commit
@ -80,16 +80,16 @@ pre-commit install
## Learn and connect ## Learn and connect
- [Telegram Public Group](https://t.me/frappecloud) - [Telegram Public Group](https://t.me/frappecloud)
- [Discuss Forum](https://discuss.frappe.io/c/frappe-cloud/77) - [Discuss Forum](https://discuss.framework.jingrow.com/c/frappe-cloud/77)
- [Documentation](https://docs.frappe.io/cloud) - [Documentation](https://docs.framework.jingrow.com/cloud)
<br/> <br/>
<br/> <br/>
<div align="center" style="padding-top: 0.75rem;"> <div align="center" style="padding-top: 0.75rem;">
<a href="https://frappe.io" target="_blank"> <a href="https://framework.jingrow.com" target="_blank">
<picture> <picture>
<source media="(prefers-color-scheme: dark)" srcset="https://frappe.io/files/Frappe-white.png"> <source media="(prefers-color-scheme: dark)" srcset="https://framework.jingrow.com/files/Frappe-white.png">
<img src="https://frappe.io/files/Frappe-black.png" alt="Frappe Technologies" height="28"/> <img src="https://framework.jingrow.com/files/Frappe-black.png" alt="Frappe Technologies" height="28"/>
</picture> </picture>
</a> </a>
</div> </div>

View File

@ -95,11 +95,11 @@ export default {
}, },
methods: { methods: {
support() { support() {
window.open('https://frappecloud.com/support', '_blank'); window.open('https://jcloud.jingrow.com/support', '_blank');
}, },
feedback() { feedback() {
window.open( window.open(
'https://frappecloud.com/frappe-cloud-feedback/new', 'https://jcloud.jingrow.com/frappe-cloud-feedback/new',
'_blank', '_blank',
); );
}, },

View File

@ -145,7 +145,7 @@ export default {
if (file.size > 5 * 1024 * 1024 * 1024) { if (file.size > 5 * 1024 * 1024 * 1024) {
throw new Error( throw new Error(
'File size exceeds the limit of 5 GiB. Please try the <a href="https://docs.frappe.io/cloud/sites/migrate-an-existing-site#migrate-using-python-script" class=underline>migrate</a> script.', 'File size exceeds the limit of 5 GiB. Please try the <a href="https://docs.framework.jingrow.com/cloud/sites/migrate-an-existing-site#migrate-using-python-script" class=underline>migrate</a> script.',
); );
} }

View File

@ -80,6 +80,6 @@ const SwitchTeamDialog2 = defineAsyncComponent(
const showTeamSwitcher = ref(false); const showTeamSwitcher = ref(false);
function support() { function support() {
window.open('https://frappecloud.com/support', '_blank'); window.open('https://jcloud.jingrow.com/support', '_blank');
} }
</script> </script>

View File

@ -19,7 +19,7 @@
<Button <Button
class="ml-auto min-w-[7rem]" class="ml-auto min-w-[7rem]"
variant="outline" variant="outline"
link="https://docs.frappe.io/cloud/faq/site#my-site-is-suspended-what-do-i-do" link="https://docs.framework.jingrow.com/cloud/faq/site#my-site-is-suspended-what-do-i-do"
> >
More Info More Info
</Button> </Button>
@ -34,7 +34,7 @@
<Button <Button
class="ml-auto min-w-[7rem]" class="ml-auto min-w-[7rem]"
variant="outline" variant="outline"
link="https://docs.frappe.io/cloud/faq/site#my-site-is-suspended-what-do-i-do" link="https://docs.framework.jingrow.com/cloud/faq/site#my-site-is-suspended-what-do-i-do"
> >
More Info More Info
</Button> </Button>
@ -83,7 +83,7 @@
<Button <Button
class="ml-auto min-w-[7rem]" class="ml-auto min-w-[7rem]"
variant="outline" variant="outline"
link="https://docs.frappe.io/cloud/sites/version-upgrade" link="https://docs.framework.jingrow.com/cloud/sites/version-upgrade"
> >
Upgrade Now Upgrade Now
</Button> </Button>
@ -97,7 +97,7 @@
$site.pg.status !== 'Archived' $site.pg.status !== 'Archived'
" "
class="col-span-1 lg:col-span-2" class="col-span-1 lg:col-span-2"
title="Your site is currently on a shared bench group. Upgrade plan to enjoy <a href='https://frappecloud.com/shared-hosting#benches' class='underline' target='_blank'>more benefits</a>." title="Your site is currently on a shared bench group. Upgrade plan to enjoy <a href='https://jcloud.jingrow.com/shared-hosting#benches' class='underline' target='_blank'>more benefits</a>."
:id="$site.name" :id="$site.name"
type="gray" type="gray"
> >
@ -224,7 +224,7 @@
: 0) >= 80 : 0) >= 80
" "
variant="ghost" variant="ghost"
link="https://docs.frappe.io/cloud/faq/site#what-is-using-up-all-my-database-size" link="https://docs.framework.jingrow.com/cloud/faq/site#what-is-using-up-all-my-database-size"
icon="help-circle" icon="help-circle"
/> />
</div> </div>

View File

@ -35,7 +35,7 @@
If the update fails, rollback will not occur as there is no If the update fails, rollback will not occur as there is no
backup. You will have to manually fix the issues over backup. You will have to manually fix the issues over
<a <a
href="https://docs.frappe.io/cloud/benches/ssh" href="https://docs.framework.jingrow.com/cloud/benches/ssh"
target="_blank" target="_blank"
class="underline" class="underline"
>ssh</a >ssh</a

View File

@ -116,7 +116,7 @@ function processOrder(data) {
key: data.key_id, key: data.key_id,
order_id: data.order_id, order_id: data.order_id,
name: 'Frappe Cloud', name: 'Frappe Cloud',
image: 'https://frappe.io/files/cloud.png', image: 'https://framework.jingrow.com/files/cloud.png',
prefill: { email: team.pg?.user }, prefill: { email: team.pg?.user },
handler: handlePaymentSuccess, handler: handlePaymentSuccess,
theme: { color: '#171717' }, theme: { color: '#171717' },

View File

@ -310,7 +310,7 @@ const paymentModeOptions = [
h( h(
'a', 'a',
{ {
href: 'https://frappecloud.com/payment-options', href: 'https://jcloud.jingrow.com/payment-options',
target: '_blank', target: '_blank',
}, },
'Alternate Payment Methods', 'Alternate Payment Methods',

View File

@ -5,7 +5,7 @@
</p> </p>
<p class="text-base text-gray-700"> <p class="text-base text-gray-700">
Please reach out to Please reach out to
<a href="https://support.frappe.io/" target="_blank" class="underline" <a href="https://support.framework.jingrow.com/" target="_blank" class="underline"
>support</a >support</a
> >
to enable it to enable it

View File

@ -48,7 +48,7 @@
<a <a
class="no-underline" class="no-underline"
target="_blank" target="_blank"
href="https://docs.frappe.io/cloud/benches/editing-bench-dependency-version#setting-a-custom-version" href="https://docs.framework.jingrow.com/cloud/benches/editing-bench-dependency-version#setting-a-custom-version"
><FeatherIcon ><FeatherIcon
name="help-circle" name="help-circle"
class="h-3 w-3 text-gray-700" class="h-3 w-3 text-gray-700"

View File

@ -62,7 +62,7 @@
<div class="flex items-center gap-2"> <div class="flex items-center gap-2">
<h2 class="text-lg font-medium">Build might fail</h2> <h2 class="text-lg font-medium">Build might fail</h2>
<a <a
href="https://docs.frappe.io/cloud/common-issues/build-might-fail" href="https://docs.framework.jingrow.com/cloud/common-issues/build-might-fail"
target="_blank" target="_blank"
class="cursor-pointer rounded-full border border-gray-200 bg-gray-100 p-0.5 text-base text-gray-700" class="cursor-pointer rounded-full border border-gray-200 bg-gray-100 p-0.5 text-base text-gray-700"
> >
@ -90,7 +90,7 @@
/> />
<Tooltip text="View documentation"> <Tooltip text="View documentation">
<a <a
href="https://docs.frappe.io/cloud/in-place-updates" href="https://docs.framework.jingrow.com/cloud/in-place-updates"
target="_blank" target="_blank"
> >
<lucide-help-circle :class="`h-4 w-4 text-gray-600`" /> <lucide-help-circle :class="`h-4 w-4 text-gray-600`" />

View File

@ -58,7 +58,7 @@
/> />
The Github Repository is private. The Github Repository is private.
<Link <Link
href="https://frappecloud.com/marketplace/terms" href="https://jcloud.jingrow.com/marketplace/terms"
class="font-medium" class="font-medium"
> >
Terms and Policy Terms and Policy

View File

@ -104,7 +104,7 @@ function processOrder(data) {
key: data.key_id, key: data.key_id,
order_id: data.order_id, order_id: data.order_id,
name: 'Frappe Cloud', name: 'Frappe Cloud',
image: 'https://frappe.io/files/cloud.png', image: 'https://framework.jingrow.com/files/cloud.png',
prefill: { email: team.pg?.user }, prefill: { email: team.pg?.user },
handler: handlePaymentSuccess, handler: handlePaymentSuccess,
theme: { color: '#171717' }, theme: { color: '#171717' },

View File

@ -116,7 +116,7 @@ async function handleApplyForCertificate() {
try { try {
await checkCertification.submit(); await checkCertification.submit();
if (showMessage.value) { if (showMessage.value) {
batch_link.value = `https://school.frappe.io/lms/billing/certificate/${certificateType.value}`; batch_link.value = `https://school.framework.jingrow.com/lms/billing/certificate/${certificateType.value}`;
throw new Error( throw new Error(
'You are not eligible for a free certification at this time.', 'You are not eligible for a free certification at this time.',
); );

View File

@ -111,7 +111,7 @@ export default {
width: 0.5, width: 0.5,
}, },
], ],
documentation: 'https://school.frappe.io', documentation: 'https://school.framework.jingrow.com',
actions() { actions() {
return [ return [
{ {

View File

@ -178,7 +178,7 @@
By clicking "I Agree", you confirm that you have read and accepted the By clicking "I Agree", you confirm that you have read and accepted the
terms and conditions of the terms and conditions of the
<a <a
href="https://frappe.io/partners/terms" href="https://framework.jingrow.com/partners/terms"
target="_blank" target="_blank"
class="underline" class="underline"
><strong>Frappe Partnership Agreement</strong></a ><strong>Frappe Partnership Agreement</strong></a

View File

@ -65,7 +65,7 @@
<p class="text-gray-600"> <p class="text-gray-600">
Please read the Please read the
<a <a
href="https://docs.frappe.io/cloud/application-server-horizontal-scaling" href="https://docs.framework.jingrow.com/cloud/application-server-horizontal-scaling"
target="_blank" target="_blank"
class="text-gray-900 underline hover:text-gray-700" class="text-gray-900 underline hover:text-gray-700"
> >

View File

@ -19,7 +19,7 @@
:showIcon="false" :showIcon="false"
class="mb-3" class="mb-3"
title="When both CPU and Memory thresholds are set, scaling will trigger if either condition is met. title="When both CPU and Memory thresholds are set, scaling will trigger if either condition is met.
<br>Please refer to the <a href='https://docs.frappe.io/cloud/application-server-horizontal-scaling#application-server-horizontal-scaling' <br>Please refer to the <a href='https://docs.framework.jingrow.com/cloud/application-server-horizontal-scaling#application-server-horizontal-scaling'
target='_blank' class='underline'>documentation</a> for more information." target='_blank' class='underline'>documentation</a> for more information."
/> />
<div class="flex justify-end gap-2"> <div class="flex justify-end gap-2">

View File

@ -112,7 +112,7 @@ function onTeardownSecondaryServer() {
<p class="mt-3"> <p class="mt-3">
See the docs to learn more about autoscaling:<br> See the docs to learn more about autoscaling:<br>
<a href="https://docs.frappe.io/cloud/application-server-horizontal-scaling#opting-out" <a href="https://docs.framework.jingrow.com/cloud/application-server-horizontal-scaling#opting-out"
target="_blank" rel="noopener" style="text-decoration: underline;"> target="_blank" rel="noopener" style="text-decoration: underline;">
<strong>Secondary Server Teardown Guide</strong> <strong>Secondary Server Teardown Guide</strong>
</a> </a>
@ -172,7 +172,7 @@ function onSetupSecondaryServer() {
<p class="mt-3"> <p class="mt-3">
See the docs to learn more about autoscaling:<br> See the docs to learn more about autoscaling:<br>
<a href="https://docs.frappe.io/cloud/application-server-horizontal-scaling#setting-up-a-secondary-server" <a href="https://docs.framework.jingrow.com/cloud/application-server-horizontal-scaling#setting-up-a-secondary-server"
target="_blank" rel="noopener" style="text-decoration: underline;"> target="_blank" rel="noopener" style="text-decoration: underline;">
<strong>Secondary Server Setup Guide</strong> <strong>Secondary Server Setup Guide</strong>
</a> </a>
@ -295,7 +295,7 @@ function onEnableAutoDiskExpansion() {
function onDisableAutoDiskExpansion() { function onDisableAutoDiskExpansion() {
confirmDialog({ confirmDialog({
title: 'Disable automatic storage disk expansion', title: 'Disable automatic storage disk expansion',
message: `<div class="prose text-base">Disable auto add on storage?<br>This can effect server uptime <a href="https://docs.frappe.io/cloud/storage-addons">Know more</a></br></div>`, message: `<div class="prose text-base">Disable auto add on storage?<br>This can effect server uptime <a href="https://docs.framework.jingrow.com/cloud/storage-addons">Know more</a></br></div>`,
primaryAction: { primaryAction: {
label: 'Disable', label: 'Disable',
theme: 'red', theme: 'red',

View File

@ -6,7 +6,7 @@
<Button <Button
icon="help-circle" icon="help-circle"
variant="ghost" variant="ghost"
:link="'https://docs.frappe.io/cloud/server-analytics#load-average'" :link="'https://docs.framework.jingrow.com/cloud/server-analytics#load-average'"
/> />
<router-link <router-link
class="text-base text-gray-600 hover:text-gray-700" class="text-base text-gray-600 hover:text-gray-700"

View File

@ -89,7 +89,7 @@
<Button <Button
class="ml-auto" class="ml-auto"
variant="outline" variant="outline"
link="https://docs.frappe.io/cloud/database-server-actions#view--purge-binlogs" link="https://docs.framework.jingrow.com/cloud/database-server-actions#view--purge-binlogs"
> >
Docs Docs
</Button> </Button>

View File

@ -28,7 +28,7 @@
<p class="mt-2 text-sm text-gray-700"> <p class="mt-2 text-sm text-gray-700">
<strong>Note:</strong> Secret is optional. Check <strong>Note:</strong> Secret is optional. Check
<a <a
href="https://docs.frappe.io/cloud/webhook-introduction" href="https://docs.framework.jingrow.com/cloud/webhook-introduction"
class="underline" class="underline"
target="_blank" target="_blank"
>the documentation</a >the documentation</a

View File

@ -42,7 +42,7 @@
<p class="mt-1.5 text-sm text-gray-700"> <p class="mt-1.5 text-sm text-gray-700">
<secret>Note:</secret> Secret is optional. Check <secret>Note:</secret> Secret is optional. Check
<a <a
href="https://docs.frappe.io/cloud/webhook-introduction" href="https://docs.framework.jingrow.com/cloud/webhook-introduction"
class="underline" class="underline"
target="_blank" target="_blank"
>the documentation</a >the documentation</a

View File

@ -71,7 +71,7 @@
<strong>A record</strong>. Please update the same after migration to <strong>A record</strong>. Please update the same after migration to
avoid downtime. To know more, refer avoid downtime. To know more, refer
<a <a
href="https://docs.frappe.io/cloud/sites/custom-domains" href="https://docs.framework.jingrow.com/cloud/sites/custom-domains"
target="_blank" target="_blank"
class="underline" class="underline"
>the documentation.</a >the documentation.</a

View File

@ -37,7 +37,7 @@ export default {
slowQueriesOptions() { slowQueriesOptions() {
return { return {
experimental: true, experimental: true,
documentation: 'https://docs.frappe.io/cloud/performance-tuning', documentation: 'https://docs.framework.jingrow.com/cloud/performance-tuning',
data: () => this.$resources.slowQueries.data.data, data: () => this.$resources.slowQueries.data.data,
onRowClick: (row) => { onRowClick: (row) => {
this.selectedQuery = row.query; this.selectedQuery = row.query;

View File

@ -77,7 +77,7 @@
<p class="text-sm"> <p class="text-sm">
Please check out the Please check out the
<a <a
href="https://docs.frappe.io/cloud/database-users-and-permission-manager#faq" href="https://docs.framework.jingrow.com/cloud/database-users-and-permission-manager#faq"
target="_blank" target="_blank"
class="underline" class="underline"
>documentation</a >documentation</a

View File

@ -151,7 +151,7 @@ const siteAppListOptions: Partial<TabList> = {
}, },
banner({ documentResource: site }) { banner({ documentResource: site }) {
const bannerTitle = const bannerTitle =
'Your site is currently on a shared bench group. Upgrade plan to install custom apps, enable server scripts and <a href="https://frappecloud.com/shared-hosting#benches" class="underline" target="_blank">more</a>.'; 'Your site is currently on a shared bench group. Upgrade plan to install custom apps, enable server scripts and <a href="https://jcloud.jingrow.com/shared-hosting#benches" class="underline" target="_blank">more</a>.';
return getUpsellBanner(site, bannerTitle); return getUpsellBanner(site, bannerTitle);
}, },

View File

@ -23,7 +23,7 @@ export function getPatchesTab(forBench: boolean) {
type: 'list', type: 'list',
list: { list: {
experimental: true, // If removing this, uncheck App Patch doctype beta flag. experimental: true, // If removing this, uncheck App Patch doctype beta flag.
documentation: 'https://docs.frappe.io/cloud/benches/app-patches', documentation: 'https://docs.framework.jingrow.com/cloud/benches/app-patches',
doctype: 'App Patch', doctype: 'App Patch',
filters: (res) => ({ [forBench ? 'bench' : 'group']: res.name }), filters: (res) => ({ [forBench ? 'bench' : 'group']: res.name }),
searchField: 'filename', searchField: 'filename',

View File

@ -119,7 +119,7 @@ export default {
button: { button: {
label: 'Read docs', label: 'Read docs',
variant: 'outline', variant: 'outline',
link: 'https://docs.frappe.io/cloud/benches/create-new', link: 'https://docs.framework.jingrow.com/cloud/benches/create-new',
}, },
}; };
} }
@ -234,7 +234,7 @@ export default {
h( h(
'a', 'a',
{ {
href: 'https://docs.frappe.io/cloud/faq/app-installation-issue', href: 'https://docs.framework.jingrow.com/cloud/faq/app-installation-issue',
target: '_blank', target: '_blank',
}, },
[h(icon('help-circle', 'w-3 h-3'), {})], [h(icon('help-circle', 'w-3 h-3'), {})],

View File

@ -462,7 +462,7 @@ export default {
condition: () => app.pg.status === 'Draft', condition: () => app.pg.status === 'Draft',
onClick() { onClick() {
window.open( window.open(
'https://docs.frappe.io/cloud/marketplace/marketplace-guidelines', 'https://docs.framework.jingrow.com/cloud/marketplace/marketplace-guidelines',
'_blank', '_blank',
); );
}, },

View File

@ -137,7 +137,7 @@ export default {
button: { button: {
label: 'Read docs', label: 'Read docs',
variant: 'outline', variant: 'outline',
link: 'https://docs.frappe.io/cloud/servers/new', link: 'https://docs.framework.jingrow.com/cloud/servers/new',
}, },
}; };
} }

View File

@ -1057,7 +1057,7 @@ export default {
label: 'Contact Support', label: 'Contact Support',
variant: 'outline', variant: 'outline',
onClick() { onClick() {
window.open('https://frappecloud.com/support', '_blank'); window.open('https://jcloud.jingrow.com/support', '_blank');
}, },
}, },
}; };
@ -1067,7 +1067,7 @@ export default {
return getUpsellBanner( return getUpsellBanner(
site, site,
'Your site is currently on a shared bench group. Upgrade plan for offsite backups and <a href="https://frappecloud.com/shared-hosting#benches" class="underline" target="_blank">more</a>.', 'Your site is currently on a shared bench group. Upgrade plan for offsite backups and <a href="https://jcloud.jingrow.com/shared-hosting#benches" class="underline" target="_blank">more</a>.',
); );
}, },
}, },
@ -1493,7 +1493,7 @@ export default {
}, },
banner({ documentResource: site }) { banner({ documentResource: site }) {
const bannerTitle = const bannerTitle =
'Your site is currently on a shared bench group. Upgrade to a private bench group to configure auto updates and <a href="https://frappecloud.com/shared-hosting#benches" class="underline" target="_blank">more</a>.'; 'Your site is currently on a shared bench group. Upgrade to a private bench group to configure auto updates and <a href="https://jcloud.jingrow.com/shared-hosting#benches" class="underline" target="_blank">more</a>.';
return getUpsellBanner(site, bannerTitle); return getUpsellBanner(site, bannerTitle);
}, },

View File

@ -22,7 +22,7 @@
</ul> </ul>
<div> <div>
<Link <Link
href="https://docs.frappe.io/cloud/what-are-benches-and-bench-groups" href="https://docs.framework.jingrow.com/cloud/what-are-benches-and-bench-groups"
target="_blank" target="_blank"
class="inline-flex items-center text-sm font-medium text-indigo-600 hover:text-indigo-700" class="inline-flex items-center text-sm font-medium text-indigo-600 hover:text-indigo-700"
>Read more </Link >Read more </Link

View File

@ -25,7 +25,7 @@
</ul> </ul>
<div> <div>
<Link <Link
href="https://docs.frappe.io/cloud/servers/servers-introduction" href="https://docs.framework.jingrow.com/cloud/servers/servers-introduction"
target="_blank" target="_blank"
class="inline-flex items-center text-sm font-medium text-indigo-600 hover:text-indigo-700" class="inline-flex items-center text-sm font-medium text-indigo-600 hover:text-indigo-700"
>Read more </Link >Read more </Link

View File

@ -169,7 +169,7 @@
</div> </div>
<a <a
class="text-sm underline" class="text-sm underline"
href="https://docs.frappe.io/cloud/installing-an-app" href="https://docs.framework.jingrow.com/cloud/installing-an-app"
target="_blank" target="_blank"
> >
Read documentation Read documentation

View File

@ -298,7 +298,7 @@
</span> </span>
<a <a
class="text-base font-normal text-gray-900 underline hover:text-gray-700" class="text-base font-normal text-gray-900 underline hover:text-gray-700"
href="https://frappecloud.com/policies" href="https://jcloud.jingrow.com/policies"
> >
Terms & Policies Terms & Policies
</a> </a>
@ -380,7 +380,7 @@
</span> </span>
<a <a
class="text-base font-normal text-gray-900 underline hover:text-gray-700" class="text-base font-normal text-gray-900 underline hover:text-gray-700"
href="https://frappecloud.com/policies" href="https://jcloud.jingrow.com/policies"
> >
Terms & Policies Terms & Policies
</a> </a>

View File

@ -102,7 +102,7 @@
</h2> </h2>
<div> <div>
<Button <Button
link="https://frappecloud.com/pricing#dedicated" link="https://jcloud.jingrow.com/pricing#dedicated"
variant="ghost" variant="ghost"
> >
<template #prefix> <template #prefix>
@ -374,7 +374,7 @@
Or you can Or you can
<a <a
class="underline" class="underline"
href="https://frappecloud.com/support" href="https://jcloud.jingrow.com/support"
target="_blank" target="_blank"
>contact support</a >contact support</a
> >

View File

@ -144,7 +144,7 @@
Select Plan Select Plan
</h2> </h2>
<div> <div>
<Button link="https://frappecloud.com/pricing" variant="ghost"> <Button link="https://jcloud.jingrow.com/pricing" variant="ghost">
<template #prefix> <template #prefix>
<lucide-help-circle class="h-4 w-4 text-gray-700" /> <lucide-help-circle class="h-4 w-4 text-gray-700" />
</template> </template>

View File

@ -11,7 +11,7 @@
<Button <Button
class="ml-auto min-w-[7rem]" class="ml-auto min-w-[7rem]"
variant="outline" variant="outline"
link="https://docs.frappe.io/cloud/sites/version-upgrade" link="https://docs.framework.jingrow.com/cloud/sites/version-upgrade"
> >
Upgrade Now Upgrade Now
</Button> </Button>
@ -131,7 +131,7 @@ export default {
<Tooltip text="Apps in this bench may have been patched"> <Tooltip text="Apps in this bench may have been patched">
<a <a
class="p-1 ml-2 text-gray-700 bg-gray-100 rounded" class="p-1 ml-2 text-gray-700 bg-gray-100 rounded"
href="https://docs.frappe.io/cloud/benches/app-patches" href="https://docs.framework.jingrow.com/cloud/benches/app-patches"
target="_blank" target="_blank"
> >
<IconHash /> <IconHash />
@ -142,7 +142,7 @@ export default {
<Tooltip text="This bench has been updated in place"> <Tooltip text="This bench has been updated in place">
<a <a
class="p-1 ml-2 text-gray-700 bg-gray-100 rounded" class="p-1 ml-2 text-gray-700 bg-gray-100 rounded"
href="https://docs.frappe.io/cloud/in-place-updates" href="https://docs.framework.jingrow.com/cloud/in-place-updates"
target="_blank" target="_blank"
> >
<IconStar /> <IconStar />

View File

@ -106,7 +106,7 @@
</span> </span>
<a <a
class="text-base font-normal text-gray-900 underline hover:text-gray-700" class="text-base font-normal text-gray-900 underline hover:text-gray-700"
href="https://frappecloud.com/policies" href="https://jcloud.jingrow.com/policies"
> >
Terms & Policies Terms & Policies
</a> </a>

View File

@ -29,7 +29,7 @@
<Tooltip text="View documentation"> <Tooltip text="View documentation">
<div class="rounded-md bg-gray-100 p-1.5"> <div class="rounded-md bg-gray-100 p-1.5">
<a <a
href="https://docs.frappe.io/cloud/binlog-browser" href="https://docs.framework.jingrow.com/cloud/binlog-browser"
target="_blank" target="_blank"
> >
<lucide-help-circle class="h-4 w-4" /> <lucide-help-circle class="h-4 w-4" />
@ -309,7 +309,7 @@
<p class="text-gray-600" v-else> <p class="text-gray-600" v-else>
Follow the Follow the
<a <a
href="https://docs.frappe.io/cloud/database-server-actions#enable--disable-binlog-indexer" href="https://docs.framework.jingrow.com/cloud/database-server-actions#enable--disable-binlog-indexer"
class="text-blue-600 underline" class="text-blue-600 underline"
target="_blank" target="_blank"
rel="noopener noreferrer" rel="noopener noreferrer"

View File

@ -152,7 +152,7 @@
<Button <Button
class="ml-auto" class="ml-auto"
variant="outline" variant="outline"
link="https://docs.frappe.io/cloud/sites/monitoring#how-to-check-for-reclaimable-space" link="https://docs.framework.jingrow.com/cloud/sites/monitoring#how-to-check-for-reclaimable-space"
> >
Documentation Documentation
</Button> </Button>

View File

@ -86,7 +86,7 @@
</div> </div>
</Tooltip> </Tooltip>
<Button <Button
link="https://docs.frappe.io/cloud/devtools/log-browser" link="https://docs.framework.jingrow.com/cloud/devtools/log-browser"
target="_blank" target="_blank"
> >
<lucide-help-circle class="h-4 w-4" /> <lucide-help-circle class="h-4 w-4" />

View File

@ -73,8 +73,8 @@
<p>It looks like something went wrong</p> <p>It looks like something went wrong</p>
<p> <p>
Contact Contact
<a href="mailto:support@frappe.io" class="underline" <a href="mailto:support@framework.jingrow.com" class="underline"
>support@frappe.io</a >support@framework.jingrow.com</a
><br /> ><br />
to resolve the issue to resolve the issue
</p> </p>

View File

@ -49,15 +49,15 @@
class="mr-0.5 py-1 align-baseline" class="mr-0.5 py-1 align-baseline"
/> />
I agree to Frappe&nbsp; I agree to Frappe&nbsp;
<Link href="https://frappecloud.com/terms" target="_blank"> <Link href="https://jcloud.jingrow.com/terms" target="_blank">
Terms of Service </Link Terms of Service </Link
>,&nbsp; >,&nbsp;
<Link href="https://frappecloud.com/privacy" target="_blank"> <Link href="https://jcloud.jingrow.com/privacy" target="_blank">
Privacy Policy Privacy Policy
</Link> </Link>
&nbsp;&&nbsp; &nbsp;&&nbsp;
<Link <Link
href="https://frappecloud.com/cookie-policy" href="https://jcloud.jingrow.com/cookie-policy"
target="_blank" target="_blank"
> >
Cookie Policy Cookie Policy

View File

@ -66,15 +66,15 @@
class="mr-0.5 py-1 align-baseline" class="mr-0.5 py-1 align-baseline"
/> />
I agree to Frappe&nbsp; I agree to Frappe&nbsp;
<Link href="https://frappecloud.com/terms" target="_blank"> <Link href="https://jcloud.jingrow.com/terms" target="_blank">
Terms of Service </Link Terms of Service </Link
>,&nbsp; >,&nbsp;
<Link href="https://frappecloud.com/privacy" target="_blank"> <Link href="https://jcloud.jingrow.com/privacy" target="_blank">
Privacy Policy Privacy Policy
</Link> </Link>
&nbsp;&&nbsp; &nbsp;&&nbsp;
<Link <Link
href="https://frappecloud.com/cookie-policy" href="https://jcloud.jingrow.com/cookie-policy"
target="_blank" target="_blank"
> >
Cookie Policy Cookie Policy

View File

@ -78,7 +78,7 @@ References: https://mariadb.com/kb/en/building-mariadb-on-ubuntu/
We need to [sign the packages with OpenPGP](https://ubuntu.com/server/docs/third-party-apt-repositories) We need to [sign the packages with OpenPGP](https://ubuntu.com/server/docs/third-party-apt-repositories)
1. Create a OpenPGP key for `Frappe Developers <developers@frappe.io>`. This is an interactive step. Refer frappe.io/app/frappe-asset for Paasphrase. 1. Create a OpenPGP key for `Frappe Developers <developers@framework.jingrow.com>`. This is an interactive step. Refer framework.jingrow.com/app/frappe-asset for Paasphrase.
```sh ```sh
gpg --full-gen-key gpg --full-gen-key
@ -92,7 +92,7 @@ $ gpg --list-secret-key --with-subkey-fingerprint
------------------------------- -------------------------------
sec rsa4096 2024-01-29 [SC] sec rsa4096 2024-01-29 [SC]
2AADEF02BE446B0FA3B0AC3DF38C274AC216D014 2AADEF02BE446B0FA3B0AC3DF38C274AC216D014
uid [ultimate] Frappe Developers <developers@frappe.io> uid [ultimate] Frappe Developers <developers@framework.jingrow.com>
``` ```
Export the public key in the repository directory Export the public key in the repository directory
@ -201,7 +201,7 @@ Setup TLS for `packages.frappe.cloud`
```sh ```sh
snap install --classic certbot snap install --classic certbot
certbot --nginx --agree-tos --email developers@frappe.io --domains packages.frappe.cloud certbot --nginx --agree-tos --email developers@framework.jingrow.com --domains packages.frappe.cloud
``` ```
### Install patched MariaDB ### Install patched MariaDB

View File

@ -33,7 +33,7 @@ server {
# setup maps # setup maps
map $host $site_name_sxjfjnv { map $host $site_name_sxjfjnv {
frappecloud.com frappe.cloud; jcloud.jingrow.com frappe.cloud;
default $host; default $host;
} }
@ -51,8 +51,8 @@ server {
root /home/frappe/frappe-bench/sites; root /home/frappe/frappe-bench/sites;
ssl on; ssl on;
ssl_certificate /etc/letsencrypt/live/code.frappecloud.com/fullchain.pem; # managed by Certbot ssl_certificate /etc/letsencrypt/live/code.jcloud.jingrow.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/code.frappecloud.com/privkey.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/code.jcloud.jingrow.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
ssl_stapling on; ssl_stapling on;
@ -65,7 +65,7 @@ server {
add_header X-Content-Type-Options nosniff; add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block"; add_header X-XSS-Protection "1; mode=block";
return 301 https://frappecloud.com$request_uri; return 301 https://jcloud.jingrow.com$request_uri;
} }
@ -91,14 +91,14 @@ server {
server_name server_name
frappecloud.com jcloud.jingrow.com
; ;
root /home/frappe/frappe-bench/sites; root /home/frappe/frappe-bench/sites;
ssl on; ssl on;
ssl_certificate /etc/letsencrypt/live/code.frappecloud.com/fullchain.pem; # managed by Certbot ssl_certificate /etc/letsencrypt/live/code.jcloud.jingrow.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/code.frappecloud.com/privkey.pem; # managed by Certbot ssl_certificate_key /etc/letsencrypt/live/code.jcloud.jingrow.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
@ -463,14 +463,14 @@ server {
# http to https redirect # http to https redirect
server { server {
if ($host = frappecloud.com) { if ($host = jcloud.jingrow.com) {
return 301 https://$host$request_uri; return 301 https://$host$request_uri;
} # managed by Certbot } # managed by Certbot
listen 80; listen 80;
server_name server_name
frappecloud.com jcloud.jingrow.com
; ;
return 301 https://$host$request_uri; return 301 https://$host$request_uri;

View File

@ -12,7 +12,7 @@ For `f7-mumbai.frappe.cloud`
2. Create User SSH Certificate for the server you want access to, in this case `f7-mumbai.frappe.cloud`. 2. Create User SSH Certificate for the server you want access to, in this case `f7-mumbai.frappe.cloud`.
3. Fill details such as server name, reason for accessing the server, validity period for eg. 6 Hrs. 3. Fill details such as server name, reason for accessing the server, validity period for eg. 6 Hrs.
![Certificate Details](https://frappecloud.com/files/Screenshot%202022-11-15%20at%2012.54.12%20PM.png) ![Certificate Details](https://jcloud.jingrow.com/files/Screenshot%202022-11-15%20at%2012.54.12%20PM.png)
4. Click on **Copy Certificate Details**, it will copy the certificate in the clipboard and then paste it in your terminal. 4. Click on **Copy Certificate Details**, it will copy the certificate in the clipboard and then paste it in your terminal.
5. Now click on **Copy SSH Command**, it will copy the SSH command in the clipboard and then paste it in your terminal. 5. Now click on **Copy SSH Command**, it will copy the SSH command in the clipboard and then paste it in your terminal.

View File

@ -10,7 +10,7 @@ The main master for marketplace is the “Marketplace App” DocType around whic
## Release Management ## Release Management
When the developer “Publish”es a release (by using the steps described in Managing your Marketplace App (frappecloud.com)), an “App Release Approval Request'' is created, which I review (there is an assignment rule that assigns it to just me as of now). For apps I trust (like POSAwesome), I approve the releases blindly, for new apps I look at the diff if the repo is open source or have to use the code server to look into the app. When the developer “Publish”es a release (by using the steps described in Managing your Marketplace App (jcloud.jingrow.com)), an “App Release Approval Request'' is created, which I review (there is an assignment rule that assigns it to just me as of now). For apps I trust (like POSAwesome), I approve the releases blindly, for new apps I look at the diff if the repo is open source or have to use the code server to look into the app.
## Approving a release ## Approving a release
@ -27,12 +27,12 @@ Once approved, the new release will be available for deployment on bench groups
## Server Script for Auto-approving of App Releases for Marketplace App ## Server Script for Auto-approving of App Releases for Marketplace App
There is a Server Script that auto-approves releases (sets the status of the App Release pg to Approved) for all the apps belonging to team@erpnext.com (Auto approve frappe/erpnext releases (frappecloud.com)). There is a Server Script that auto-approves releases (sets the status of the App Release pg to Approved) for all the apps belonging to team@erpnext.com (Auto approve frappe/erpnext releases (jcloud.jingrow.com)).
## Publishing of New Apps ## Publishing of New Apps
It all starts with the developer of the app enabling developer mode and adding the app to be published via dashboard as per the instructions written here: Publishing an App to Marketplace (frappecloud.com). In the backend the “Marketplace App” master is created and its status is set to “Draft”. It all starts with the developer of the app enabling developer mode and adding the app to be published via dashboard as per the instructions written here: Publishing an App to Marketplace (jcloud.jingrow.com). In the backend the “Marketplace App” master is created and its status is set to “Draft”.
Then the process is roughly: Then the process is roughly:

View File

@ -14,12 +14,12 @@ This documentation is intended to help consultants carry out daily operational t
| --- | --- | | --- | --- |
| FrappeCloud | Platform for hosting customer sites | | FrappeCloud | Platform for hosting customer sites |
| Team | A team represents a group of people. Every account created on Frappe Cloud belongs to a team. If a user signs up on Frappe Cloud without an invite, theyll belong to their own team. A Team document has a child table of user emails | | Team | A team represents a group of people. Every account created on Frappe Cloud belongs to a team. If a user signs up on Frappe Cloud without an invite, theyll belong to their own team. A Team document has a child table of user emails |
| Desk Page/Document/Pg | Any webpage that starts with *frappecloud.com/app* in the url, powered by Frappe Framework, similar to the one you see on frappe.io. Customers of Frappe Cloud cannot access these pages | | Desk Page/Document/Pg | Any webpage that starts with *jcloud.jingrow.com/app* in the url, powered by Frappe Framework, similar to the one you see on framework.jingrow.com. Customers of Frappe Cloud cannot access these pages |
| Dashboard Page | Any webpage that starts with *frappecloud.com/dashboard* in the url, powered by Vue js, custom UI for users. Customers of Frappe Cloud only see these pages. | | Dashboard Page | Any webpage that starts with *jcloud.jingrow.com/dashboard* in the url, powered by Vue js, custom UI for users. Customers of Frappe Cloud only see these pages. |
### Site Desk Page ### Site Desk Page
* Go to frappecloud.com/app and search for Site List * Go to jcloud.jingrow.com/app and search for Site List
* In the site list, search for the required site and open it * In the site list, search for the required site and open it
### Visit Dashboard page from Desk page ### Visit Dashboard page from Desk page
@ -45,7 +45,7 @@ This documentation is intended to help consultants carry out daily operational t
### Visit Desk Page of Team ### Visit Desk Page of Team
* Go to frappecloud.com/app and search for Team List * Go to jcloud.jingrow.com/app and search for Team List
* In the Team list, search for the required team and open it * In the Team list, search for the required team and open it
### Visit Dashboard from Team's perspective ### Visit Dashboard from Team's perspective
@ -108,8 +108,8 @@ Then you can select an app from the list shown. If the app you desire is not fou
In some cases, it may be so that multiple partners are working on features for a project, hence they would want access to same Bench Group on FC. For these cases, we can create a new team and add the required partners as members in this team. In some cases, it may be so that multiple partners are working on features for a project, hence they would want access to same Bench Group on FC. For these cases, we can create a new team and add the required partners as members in this team.
1. Signup on FC in incognito tab with `username+project_name@frappe.io` email. The `+` is important, i.e if your company email is `balamurali@frappe.io`, and project is Karam, use `balamurali+karam@frappe.io`. 1. Signup on FC in incognito tab with `username+project_name@framework.jingrow.com` email. The `+` is important, i.e if your company email is `balamurali@framework.jingrow.com`, and project is Karam, use `balamurali+karam@framework.jingrow.com`.
2. Complete signup with the verification email you get in your company email inbox (`balamurali@frappe.io` in this case) 2. Complete signup with the verification email you get in your company email inbox (`balamurali@framework.jingrow.com` in this case)
3. Mark your account as Free from [desk page](###visit-desk-page-of-team) of the newly created team 3. Mark your account as Free from [desk page](###visit-desk-page-of-team) of the newly created team
4. Invite other parties involved in the project to this newly created team from settings in your FC dashboard 4. Invite other parties involved in the project to this newly created team from settings in your FC dashboard
5. Change bench group ownership to the newly created team 5. Change bench group ownership to the newly created team
@ -122,7 +122,7 @@ In some cases, it may be so that multiple partners are working on features for a
### Central/ERPNext.com Sites ### Central/ERPNext.com Sites
* These sites are the ones migrated from central to Frappecloud. * These sites are the ones migrated from central to Frappecloud.
* They are all under common team i.e *central@frappecloud.com* and common plan i.e *Central Site* * They are all under common team i.e *central@jcloud.jingrow.com* and common plan i.e *Central Site*
* Frappecloud pricing doesn't apply to them * Frappecloud pricing doesn't apply to them
### Extend trial date of a site ### Extend trial date of a site
@ -131,7 +131,7 @@ In some cases, it may be so that multiple partners are working on features for a
### Update limits/expiry of Central/ERPNext Site ### Update limits/expiry of Central/ERPNext Site
* Open the **Support Profile** pg on `frappe.io` * Open the **Support Profile** pg on `framework.jingrow.com`
![Support Profile](../files/image5.png) ![Support Profile](../files/image5.png)

View File

@ -4,7 +4,7 @@ allow_guest: 1
published: 1 published: 1
--- ---
General introduction to press webhook can be found in [the public documentation](https://frappecloud.com/docs/webhook-introduction). General introduction to press webhook can be found in [the public documentation](https://jcloud.jingrow.com/docs/webhook-introduction).
Add New Webhook Event Add New Webhook Event
--------------------- ---------------------
@ -12,7 +12,7 @@ Add New Webhook Event
1. Go to `Press Webhook Event` doctype in desk. 1. Go to `Press Webhook Event` doctype in desk.
2. Create a new record and fill up the title and description of event. This title and description will be shown to users to select. 2. Create a new record and fill up the title and description of event. This title and description will be shown to users to select.
3. If you are on local development setup, you can export fixtures. 3. If you are on local development setup, you can export fixtures.
4. Update the documentation of `Webhook Events` as well > <https://frappecloud.com/docs/webhook-events> 4. Update the documentation of `Webhook Events` as well > <https://jcloud.jingrow.com/docs/webhook-events>
Create Webhook Event Create Webhook Event
-------------------- --------------------
@ -31,7 +31,7 @@ create_webhook_event("Site Status Update", payload, team_name)
``` ```
* **Payload** can be doctype object or a python dictionary. * **Payload** can be doctype object or a python dictionary.
* If you want to pass doctype object as payload, you should add the required non-sensitive fields in `dashboard_fields` list in your doctype class. Check the `_process_document_payload` method ([ref](https://github.com/frappe/press/blob/d548d10269fb31dacc5ce257a8ff2d41fe451d6a/press/utils/webhook.py#L66)) to understand that. * If you want to pass doctype object as payload, you should add the required non-sensitive fields in `dashboard_fields` list in your doctype class. Check the `_process_document_payload` method ([ref](http://git.jingrow.com/jingrow/jcloude/blob/d548d10269fb31dacc5ce257a8ff2d41fe451d6a/press/utils/webhook.py#L66)) to understand that.
3. ⚠️ In the codebase, at many place we use `frappe.db.set_value` to set some specific field's value, it can cause little bit issues. 3. ⚠️ In the codebase, at many place we use `frappe.db.set_value` to set some specific field's value, it can cause little bit issues.

View File

@ -5,7 +5,7 @@ published: 1
--- ---
This is information about doctypes required to manage benches and apps on FC This is information about doctypes required to manage benches and apps on FC
from [desk](https://frappecloud.com/app). Roughly, the build process goes from [desk](https://jcloud.jingrow.com/app). Roughly, the build process goes
through these doctypes (that you're concerned with) in order. through these doctypes (that you're concerned with) in order.
App => App Source => Release Group => Deploy Candidate => Bench App => App Source => Release Group => Deploy Candidate => Bench

View File

@ -1,9 +1,9 @@
--- ---
route: billing-and-subscription-internal route: billing-and-subscription-internal
allow_guest: 1 allow_guest: 1
published: 1 published: 1
--- ---
This page describes how Subscription Management works in Frappe Cloud. This page describes how Subscription Management works in Frappe Cloud.
## DocTypes ## DocTypes
@ -22,7 +22,7 @@ These are the key doctypes that are related to subscription:
## Example scenario: ## Example scenario:
John registers on frappecloud.com with the email john@doe.com on 5 January, John registers on jcloud.jingrow.com with the email john@doe.com on 5 January,
2021. A Team record will be created with the name **john@doe.com** and a Stripe 2021. A Team record will be created with the name **john@doe.com** and a Stripe
customer record will also be created and linked to this Team record. customer record will also be created and linked to this Team record.
@ -112,7 +112,7 @@ charged. A new invoice will be created for the upcoming month of February.
## Scheduler Events ## Scheduler Events
### [subscription.create\_usage\_records](https://github.com/frappe/press/blob/master/press/press/doctype/subscription/subscription.py#L109) (hourly_long) ### [subscription.create\_usage\_records](http://git.jingrow.com/jingrow/jcloude/blob/master/press/press/doctype/subscription/subscription.py#L109) (hourly_long)
This job runs hourly and creates a Usage Record for every active Subscription. This job runs hourly and creates a Usage Record for every active Subscription.
It will not create more than one record per day for one Subscription even if it It will not create more than one record per day for one Subscription even if it
@ -124,7 +124,7 @@ Now, for every Usage Record that is created, the amount is updated in the
corresponding invoice for that month. For e.g., if a Usage Record of $0.32 is corresponding invoice for that month. For e.g., if a Usage Record of $0.32 is
created in the month of January, the amount will updated in the January invoice. created in the month of January, the amount will updated in the January invoice.
### [invoice.finalize\_draft\_invoices](https://github.com/frappe/press/blob/master/press/press/doctype/invoice/invoice.py#L541) (Daily at 6pm IST) ### [invoice.finalize\_draft\_invoices](http://git.jingrow.com/jingrow/jcloude/blob/master/press/press/doctype/invoice/invoice.py#L541) (Daily at 6pm IST)
This job runs every day at 6pm IST. It will go through every Draft Invoice whose This job runs every day at 6pm IST. It will go through every Draft Invoice whose
period_end date has ended (today or before) and has a total amount greater than period_end date has ended (today or before) and has a total amount greater than

View File

@ -29,7 +29,7 @@ You should have the following software packages installed on your computer befor
### Credentials from Frappe Assets ### Credentials from Frappe Assets
You will need access to the following IAM accounts. If you're working at Frappe, you can request them from `Frappe Assets` at frappe.io: You will need access to the following IAM accounts. If you're working at Frappe, you can request them from `Frappe Assets` at framework.jingrow.com:
1. Hetzner 1. Hetzner
2. Digital Ocean 2. Digital Ocean
@ -77,7 +77,7 @@ Now, make sure you can `ssh` (as `root`) into all the three servers using thier
Create your `press` site Create your `press` site
------------------------ ------------------------
On your computer, run `bench get-app https://github.com/frappe/press`. On your computer, run `bench get-app http://git.jingrow.com/jingrow/jcloude`.
> If you are on a M series Mac computer and you get an error related to "go" when installing press. Here's what you can try: > If you are on a M series Mac computer and you get an error related to "go" when installing press. Here's what you can try:
> >
@ -238,7 +238,7 @@ After some time, when the tasks have completed to run, the `Proxy Server` will g
If there is any error (for example, if the `Proxy Server` goes into `Broken` state) or a task keeps running forever, go to the `Error Log List` and you will most probably find a log that corresponds to the task and more information on why it failed. If there is any error (for example, if the `Proxy Server` goes into `Broken` state) or a task keeps running forever, go to the `Error Log List` and you will most probably find a log that corresponds to the task and more information on why it failed.
> If the Ansible Task "Clone Agent Repository" fails, you might want to generate a personal access token and edit the git clone URL in `press/playbooks/roles/agent/tasks/main.yml` at the agent github URL line. It should be in the format: `"https://<github-username>:<personal-access-token>@github.com:/frappe/agent"` > If the Ansible Task "Clone Agent Repository" fails, you might want to generate a personal access token and edit the git clone URL in `press/playbooks/roles/agent/tasks/main.yml` at the agent github URL line. It should be in the format: `"https://<github-username>:<personal-access-token>@github.com:/jingrow/agent"`
Setting up DB server (`m` server) Setting up DB server (`m` server)
--------------------------------- ---------------------------------
@ -280,7 +280,7 @@ Under **Press Settings** > **Docker** > **Docker Build** set **Build Server** to
Now, when you run a _Build and Deploy_, the image that is created for the deployment will be built on the Build Server. Now, when you run a _Build and Deploy_, the image that is created for the deployment will be built on the Build Server.
> **Note**: You need to add **sync** queue, in your common\_site\_config.json [**Ref**](https://github.com/frappe/press/blob/78a736c0acefcfce7d74767620688de5f7a2d059/deployment/common_site_config.json#L28) > **Note**: You need to add **sync** queue, in your common\_site\_config.json [**Ref**](http://git.jingrow.com/jingrow/jcloude/blob/78a736c0acefcfce7d74767620688de5f7a2d059/deployment/common_site_config.json#L28)
> >
> "workers": { > "workers": {
> "sync": { > "sync": {
@ -430,7 +430,7 @@ This will install additional tools commonly needed in development:
If you encounter test failures related to missing AWS services or other dev tools, ensure you have installed the development requirements. If you encounter test failures related to missing AWS services or other dev tools, ensure you have installed the development requirements.
Before running your tests, make sure to [set up pre-commit](https://github.com/frappe/press/blob/develop/setup-pre-commit.sh), follow the [testing guide](https://github.com/frappe/press/blob/develop/guide-to-testing.md), and refer to [the instructions for running tests](https://docs.frappe.io/framework/user/en/testing#running-tests) once all development dependencies are in place. Before running your tests, make sure to [set up pre-commit](http://git.jingrow.com/jingrow/jcloude/blob/develop/setup-pre-commit.sh), follow the [testing guide](http://git.jingrow.com/jingrow/jcloude/blob/develop/guide-to-testing.md), and refer to [the instructions for running tests](https://docs.framework.jingrow.com/framework/user/en/testing#running-tests) once all development dependencies are in place.
Tips Tips
---- ----

View File

@ -3,7 +3,7 @@
Before we get into writing tests, please make sure you have pre-commit hook for Before we get into writing tests, please make sure you have pre-commit hook for
styling tools setup so CI won't fail from these styling tools setup so CI won't fail from these
Instructions [here](https://github.com/frappe/press/issues/424#issuecomment-1193375098) Instructions [here](http://git.jingrow.com/jingrow/jcloude/issues/424#issuecomment-1193375098)
# Writing Tests for Press # Writing Tests for Press
@ -66,16 +66,16 @@ keep reading.
There's also a decorator you can use to fake the result of an agent job. For There's also a decorator you can use to fake the result of an agent job. For
example, you may do it like so: example, you may do it like so:
https://github.com/frappe/press/blob/983631ccb59f88e57fd60fdad1615e9abd87d99f/press/api/tests/test_site.py#L243-L247 http://git.jingrow.com/jingrow/jcloude/blob/983631ccb59f88e57fd60fdad1615e9abd87d99f/press/api/tests/test_site.py#L243-L247
This way you can use the name of the type of job and fake a response from the same. This way you can use the name of the type of job and fake a response from the same.
You may also fake the output obtained from the job which you can then use to test the callback that uses the same: You may also fake the output obtained from the job which you can then use to test the callback that uses the same:
https://github.com/frappe/press/blob/983631ccb59f88e57fd60fdad1615e9abd87d99f/press/api/tests/test_site.py#L305-L323 http://git.jingrow.com/jingrow/jcloude/blob/983631ccb59f88e57fd60fdad1615e9abd87d99f/press/api/tests/test_site.py#L305-L323
It is also possible to fake multiple jobs in the same context, for when multiple jobs are processed in the same request or job: It is also possible to fake multiple jobs in the same context, for when multiple jobs are processed in the same request or job:
https://github.com/frappe/press/blob/983631ccb59f88e57fd60fdad1615e9abd87d99f/press/press/doctype/site_migration/test_site_migration.py#L29-L77 http://git.jingrow.com/jingrow/jcloude/blob/983631ccb59f88e57fd60fdad1615e9abd87d99f/press/press/doctype/site_migration/test_site_migration.py#L29-L77
> Note that with this, you can't fake 2 results for the same type of job. This is still a limitation. As a workaround, you can have multiple `with` statements for such cases. > Note that with this, you can't fake 2 results for the same type of job. This is still a limitation. As a workaround, you can have multiple `with` statements for such cases.
@ -112,7 +112,7 @@ tell what it's trying to test is supposed without even having to read the code.
Making the method name small is pointless; we're never going to reference this Making the method name small is pointless; we're never going to reference this
method anywhere in code, ever. Eg: method anywhere in code, ever. Eg:
https://github.com/frappe/press/blob/2503e523284fb905eca60acf3271d3fb1dccbc3f/press/press/doctype/site/test_site.py#L215-L228 http://git.jingrow.com/jingrow/jcloude/blob/2503e523284fb905eca60acf3271d3fb1dccbc3f/press/press/doctype/site/test_site.py#L215-L228
You can also go the extra mile and write a function docstring. This docstring You can also go the extra mile and write a function docstring. This docstring
will be shown in the output when the testrunner detects that the test has will be shown in the output when the testrunner detects that the test has
@ -150,14 +150,14 @@ class TestBench(FrappeTestCase):
You can also use the patch decorator on test methods too. Eg: You can also use the patch decorator on test methods too. Eg:
https://github.com/frappe/press/blob/6dd6b2c8193b04f1aec1601d52ba09ce9dca8dfe/press/tests/test_cleanup.py#L280-L290 http://git.jingrow.com/jingrow/jcloude/blob/6dd6b2c8193b04f1aec1601d52ba09ce9dca8dfe/press/tests/test_cleanup.py#L280-L290
The decorator passes the mocked function (which is a `Mock()` object) along as The decorator passes the mocked function (which is a `Mock()` object) along as
an argument, so you can later do asserts on it (if you want to). an argument, so you can later do asserts on it (if you want to).
You can even use the decorator as context manager if you don't want to mock You can even use the decorator as context manager if you don't want to mock
things for the entirety of the test. things for the entirety of the test.
https://github.com/frappe/press/blob/6dd6b2c8193b04f1aec1601d52ba09ce9dca8dfe/press/tests/test_audit.py#L97-L102 http://git.jingrow.com/jingrow/jcloude/blob/6dd6b2c8193b04f1aec1601d52ba09ce9dca8dfe/press/tests/test_audit.py#L97-L102
Here, we're actually faking the output of the function which usually calls a Here, we're actually faking the output of the function which usually calls a
remote endpoint that's out of our control by adding the `new` argument to the remote endpoint that's out of our control by adding the `new` argument to the
@ -173,7 +173,7 @@ method.
> case you want to do asserts on it, you can use the `wraps` kwarg instead of > case you want to do asserts on it, you can use the `wraps` kwarg instead of
> new). Eg: > new). Eg:
https://github.com/frappe/press/blob/23711e2799f2d24dfd7bbe2b6cd148f54f4b253b/press/press/doctype/database_server_mariadb_variable/test_database_server_mariadb_variable.py#L138-L155 http://git.jingrow.com/jingrow/jcloude/blob/23711e2799f2d24dfd7bbe2b6cd148f54f4b253b/press/press/doctype/database_server_mariadb_variable/test_database_server_mariadb_variable.py#L138-L155
Here, we check what args was Ansible constructor was called with. Here, we check what args was Ansible constructor was called with.
@ -201,9 +201,9 @@ control/predict when the background job will run and finish. So, when your code
involves creating a background job, we can simply mock the call so that it runs involves creating a background job, we can simply mock the call so that it runs
in foreground instead. There's a utility method you can use to achieve this with ease: in foreground instead. There's a utility method you can use to achieve this with ease:
https://github.com/frappe/press/blob/23711e2799f2d24dfd7bbe2b6cd148f54f4b253b/press/press/doctype/database_server_mariadb_variable/test_database_server_mariadb_variable.py#L12 http://git.jingrow.com/jingrow/jcloude/blob/23711e2799f2d24dfd7bbe2b6cd148f54f4b253b/press/press/doctype/database_server_mariadb_variable/test_database_server_mariadb_variable.py#L12
https://github.com/frappe/press/blob/23711e2799f2d24dfd7bbe2b6cd148f54f4b253b/press/press/doctype/database_server_mariadb_variable/test_database_server_mariadb_variable.py#L104-L108 http://git.jingrow.com/jingrow/jcloude/blob/23711e2799f2d24dfd7bbe2b6cd148f54f4b253b/press/press/doctype/database_server_mariadb_variable/test_database_server_mariadb_variable.py#L104-L108
## Running tests ## Running tests
@ -239,6 +239,6 @@ to check out [this vim plugin](https://github.com/ankush/frappe_test.vim/) or
# References # References
- https://frappeframework.com/docs/v14/user/en/testing - https://framework.jingrow.com/docs/v14/user/en/testing
- https://docs.python.org/3/library/unittest.mock.html - https://docs.python.org/3/library/unittest.mock.html
- https://learnvim.irian.to/basics/compile - https://learnvim.irian.to/basics/compile

View File

@ -24,9 +24,9 @@ class SessionMetadata:
class OtpLogin: class OtpLogin:
def __init__(self, email: str): def __init__(self, email: str):
self.email = email self.email = email
self.opt_url = "https://frappecloud.com/api/method/press.api.account.send_otp" self.opt_url = "https://jcloud.jingrow.com/api/method/press.api.account.send_otp"
self.login_url = "https://frappecloud.com/api/method/press.api.account.verify_otp_and_login" self.login_url = "https://jcloud.jingrow.com/api/method/press.api.account.verify_otp_and_login"
self.me = "https://frappecloud.com/api/method/press.api.account.get" self.me = "https://jcloud.jingrow.com/api/method/press.api.account.get"
def send_otp(self): def send_otp(self):
"""Send otp to the email address""" """Send otp to the email address"""

View File

@ -19,7 +19,7 @@ class CloudSession(Session):
def __init__(self, session_id: str): def __init__(self, session_id: str):
super().__init__() super().__init__()
self.base_url = "https://frappecloud.com/api/method/" self.base_url = "https://jcloud.jingrow.com/api/method/"
self.cookies.set("sid", session_id) self.cookies.set("sid", session_id)
def request(self, method, url, *args, **kwargs) -> dict[str, str]: def request(self, method, url, *args, **kwargs) -> dict[str, str]:

View File

@ -5,7 +5,7 @@ readme = "README.md"
license = "AGPL-3.0-only" license = "AGPL-3.0-only"
requires-python = ">=3.10" requires-python = ">=3.10"
authors = [ authors = [
{ name = "Frappe Technologies Pvt Ltd", email = "developers@frappe.io" }, { name = "Frappe Technologies Pvt Ltd", email = "developers@framework.jingrow.com" },
] ]
classifiers = [ classifiers = [
"Development Status :: 5 - Production/Stable", "Development Status :: 5 - Production/Stable",
@ -30,10 +30,10 @@ dynamic = [
press-cli = "fc.main:app" press-cli = "fc.main:app"
[project.urls] [project.urls]
Changelog = "https://github.com/frappe/press/releases" Changelog = "http://git.jingrow.com/jingrow/jcloude/releases"
Documentation = "https://frappecloud.com/docs/user/en/bench" Documentation = "https://jcloud.jingrow.com/docs/user/en/bench"
Homepage = "https://frappecloud.com" Homepage = "https://jcloud.jingrow.com"
Source = "https://github.com/frappe/press" Source = "http://git.jingrow.com/jingrow/jcloude"
[build-system] [build-system]
requires = [ requires = [

View File

@ -67,7 +67,7 @@ type Team struct {
} }
func GetSession() Session { func GetSession() Session {
defaultServer := "frappecloud.com" defaultServer := "jcloud.jingrow.com"
// Check if session file exists // Check if session file exists
if fileExists(sessionFile) { if fileExists(sessionFile) {

View File

@ -6,7 +6,7 @@ readme = "README.md"
requires-python = ">=3.7" requires-python = ">=3.7"
license = { text = "MIT" } license = { text = "MIT" }
authors = [ authors = [
{ name = "Frappe Cloud", email = "cloud@frappe.io" } { name = "Frappe Cloud", email = "cloud@framework.jingrow.com" }
] ]
dependencies = [ dependencies = [
"duckdb==1.2.2" "duckdb==1.2.2"

View File

@ -32,7 +32,7 @@ rules:
exclude: exclude:
- "test_*.py" - "test_*.py"
message: | message: |
The PR contains a SQL query that may be re-written with frappe.qb (https://frappeframework.com/docs/user/en/api/query-builder) or the Database API (https://frappeframework.com/docs/user/en/api/database) The PR contains a SQL query that may be re-written with frappe.qb (https://framework.jingrow.com/docs/user/en/api/query-builder) or the Database API (https://framework.jingrow.com/docs/user/en/api/database)
languages: [python] languages: [python]
severity: WARNING severity: WARNING

View File

@ -27,7 +27,7 @@ def handle_suspended_site_redirection():
@dashboard_whitelist() @dashboard_whitelist()
def download_ssl_cert(domain: str): def download_ssl_cert(domain: str):
if ( if (
not (domain.endswith("frappe.cloud") or domain.endswith("frappecloud.com")) not (domain.endswith("frappe.cloud") or domain.endswith("jcloud.jingrow.com"))
and not frappe.conf.developer_mode and not frappe.conf.developer_mode
): ):
frappe.throw("Invalid domain provided") frappe.throw("Invalid domain provided")

View File

@ -947,7 +947,7 @@ def redirect_to(location):
def get_frappe_io_auth_url() -> str | None: def get_frappe_io_auth_url() -> str | None:
"""Get auth url for oauth login with frappe.io.""" """Get auth url for oauth login with framework.jingrow.com."""
try: try:
provider = frappe.get_last_pg( provider = frappe.get_last_pg(

View File

@ -253,7 +253,7 @@ def fetch_invoice_items(invoice):
@frappe.whitelist() @frappe.whitelist()
@role_guard.api("billing") @role_guard.api("billing")
def get_customer_details(team): def get_customer_details(team):
"""This method is called by frappe.io for creating Customer and Address""" """This method is called by framework.jingrow.com for creating Customer and Address"""
team_pg = frappe.db.get_value("Team", team, "*") team_pg = frappe.db.get_value("Team", team, "*")
return { return {
"team": team_pg, "team": team_pg,

View File

@ -222,7 +222,7 @@ def is_user_logged_in(user):
def check_if_user_can_login(team_info, site_info): def check_if_user_can_login(team_info, site_info):
if team_info.get("enforce_2fa"): if team_info.get("enforce_2fa"):
frappe.throw( frappe.throw(
"Sorry, you cannot login with this method as 2FA is enabled. Please visit https://frappecloud.com/dashboard to login." "Sorry, you cannot login with this method as 2FA is enabled. Please visit https://jcloud.jingrow.com/dashboard to login."
) )
if ( if (
team_info.get("user") == "Administrator" team_info.get("user") == "Administrator"

View File

@ -127,7 +127,7 @@ def validate_plan(secret_key):
except Exception as e: except Exception as e:
frappe.throw( frappe.throw(
str(e) str(e)
or "Something went wrong fetching subscription details of Email Delivery Service. Please raise a ticket at support.frappe.io", or "Something went wrong fetching subscription details of Email Delivery Service. Please raise a ticket at support.framework.jingrow.com",
type(e), type(e),
) )
@ -236,7 +236,7 @@ def send_mime_mail(**data):
frappe.throw(f"Something went wrong with sending emails: {err_msg}", InvalidEmail) frappe.throw(f"Something went wrong with sending emails: {err_msg}", InvalidEmail)
log_error("Email Delivery Service: Sending error", response=resp.text, data=data, message=message) log_error("Email Delivery Service: Sending error", response=resp.text, data=data, message=message)
frappe.throw( frappe.throw(
"Something went wrong with sending emails. Please try again later or raise a support ticket with support.frappe.io", "Something went wrong with sending emails. Please try again later or raise a support ticket with support.framework.jingrow.com",
EmailSendError, EmailSendError,
) )
return None return None

View File

@ -125,7 +125,7 @@ def callback(code=None, state=None): # noqa: C901
def invalid_login(): def invalid_login():
frappe.local.response["http_status_code"] = 401 frappe.local.response["http_status_code"] = 401
return "Invalid state parameter. The session timed out. Please try again or contact Frappe Cloud support at https://frappecloud.com/support" return "Invalid state parameter. The session timed out. Please try again or contact Frappe Cloud support at https://jcloud.jingrow.com/support"
def google_oauth_flow(): def google_oauth_flow():

View File

@ -61,7 +61,7 @@ def callback(code=None, state=None):
pass pass
else: else:
frappe.local.response["http_status_code"] = 401 frappe.local.response["http_status_code"] = 401
return "Invalid state parameter. The session timed out. Please try again or contact Frappe Cloud support at https://frappecloud.com/support" return "Invalid state parameter. The session timed out. Please try again or contact Frappe Cloud support at https://jcloud.jingrow.com/support"
try: try:
flow = google_oauth_flow() flow = google_oauth_flow()

View File

@ -70,7 +70,7 @@ def login_using_code(email: str, product: str, code: str):
if not team.enabled: if not team.enabled:
frappe.throw("Your account is disabled. Please contact support.") frappe.throw("Your account is disabled. Please contact support.")
if team.enforce_2fa: if team.enforce_2fa:
frappe.throw("Your account has 2FA enabled. Please go to frappecloud.com to login.") frappe.throw("Your account has 2FA enabled. Please go to jcloud.jingrow.com to login.")
# validate code # validate code
code_hash_from_cache = frappe.cache.get_value(f"product_trial_login_verification_code:{email}") code_hash_from_cache = frappe.cache.get_value(f"product_trial_login_verification_code:{email}")

View File

@ -772,7 +772,7 @@ def benches_are_idle(server: str, access_token: str) -> None:
"""Shut down the secondary server if all benches are idle. """Shut down the secondary server if all benches are idle.
This function is only triggered by secondary servers: This function is only triggered by secondary servers:
https://github.com/frappe/agent/pull/346/files#diff-7355d9c50cadfa3f4c74fc77a4ad8ab08e4da8f6c3326bbf9b0de0f00a0aa0daR87-R93 http://git.jingrow.com/jingrow/agent/pull/346/files#diff-7355d9c50cadfa3f4c74fc77a4ad8ab08e4da8f6c3326bbf9b0de0f00a0aa0daR87-R93
""" """
from passlib.hash import pbkdf2_sha256 as pbkdf2 from passlib.hash import pbkdf2_sha256 as pbkdf2

View File

@ -8,7 +8,7 @@ app_publisher = "Frappe"
app_description = "Managed Frappe Hosting" app_description = "Managed Frappe Hosting"
app_icon = "octicon octicon-rocket" app_icon = "octicon octicon-rocket"
app_color = "grey" app_color = "grey"
app_email = "aditya@frappe.io" app_email = "aditya@framework.jingrow.com"
app_license = "GNU Affero General Public License v3.0" app_license = "GNU Affero General Public License v3.0"
version = app_version version = app_version

View File

@ -4,7 +4,7 @@
become_user: frappe become_user: frappe
git: git:
repo: '{{ agent_repository_url }}' repo: '{{ agent_repository_url }}'
dest: /home/frappe/agent/repo dest: /home/jingrow/agent/repo
remote: upstream remote: upstream
version: '{% if agent_branch is defined and agent_branch is truthy %} {{ agent_branch }} {% else %} master {% endif %}' version: '{% if agent_branch is defined and agent_branch is truthy %} {{ agent_branch }} {% else %} master {% endif %}'
update: yes update: yes
@ -13,56 +13,56 @@
become: yes become: yes
become_user: frappe become_user: frappe
pip: pip:
name: file:///home/frappe/agent/repo name: file:///home/jingrow/agent/repo
virtualenv: /home/frappe/agent/env virtualenv: /home/jingrow/agent/env
virtualenv_python: python3 virtualenv_python: python3
editable: yes editable: yes
- name: Generate Agent Configuration File - name: Generate Agent Configuration File
become: yes become: yes
become_user: frappe become_user: frappe
command: '/home/frappe/agent/env/bin/agent setup config --name {{ server }} --workers {{ workers }} {% if proxy_ip is defined and proxy_ip is truthy %}--proxy-ip {{ proxy_ip }}{% endif %} {% if agent_sentry_dsn is defined and agent_sentry_dsn is truthy %}--sentry-dsn {{ agent_sentry_dsn }}{% endif %}' command: '/home/jingrow/agent/env/bin/agent setup config --name {{ server }} --workers {{ workers }} {% if proxy_ip is defined and proxy_ip is truthy %}--proxy-ip {{ proxy_ip }}{% endif %} {% if agent_sentry_dsn is defined and agent_sentry_dsn is truthy %}--sentry-dsn {{ agent_sentry_dsn }}{% endif %}'
args: args:
chdir: /home/frappe/agent chdir: /home/jingrow/agent
- name: Setup Agent SQLite Database - name: Setup Agent SQLite Database
become: yes become: yes
become_user: frappe become_user: frappe
command: /home/frappe/agent/env/bin/agent setup database command: /home/jingrow/agent/env/bin/agent setup database
args: args:
chdir: /home/frappe/agent chdir: /home/jingrow/agent
- name: Setup Agent Usage Tracker - name: Setup Agent Usage Tracker
become: yes become: yes
become_user: frappe become_user: frappe
command: /home/frappe/agent/env/bin/agent setup usage command: /home/jingrow/agent/env/bin/agent setup usage
args: args:
chdir: /home/frappe/agent chdir: /home/jingrow/agent
- name: Setup Agent Site Analytics Tracker - name: Setup Agent Site Analytics Tracker
become: yes become: yes
become_user: frappe become_user: frappe
command: /home/frappe/agent/env/bin/agent setup site-analytics command: /home/jingrow/agent/env/bin/agent setup site-analytics
args: args:
chdir: /home/frappe/agent chdir: /home/jingrow/agent
- name: Create Agent NGINX Configuration Directory - name: Create Agent NGINX Configuration Directory
become: yes become: yes
become_user: frappe become_user: frappe
file: file:
dest: /home/frappe/agent/nginx dest: /home/jingrow/agent/nginx
state: directory state: directory
- name: Setup Agent Authentication - name: Setup Agent Authentication
become: yes become: yes
become_user: frappe become_user: frappe
command: '/home/frappe/agent/env/bin/agent setup authentication --password {{ agent_password }}' command: '/home/jingrow/agent/env/bin/agent setup authentication --password {{ agent_password }}'
args: args:
chdir: /home/frappe/agent chdir: /home/jingrow/agent
- name: Symlink Agent Supervisor Configuration - name: Symlink Agent Supervisor Configuration
file: file:
src: /home/frappe/agent/supervisor.conf src: /home/jingrow/agent/supervisor.conf
dest: /etc/supervisor/conf.d/agent.conf dest: /etc/supervisor/conf.d/agent.conf
state: link state: link
force: yes force: yes
@ -72,26 +72,26 @@
become: yes become: yes
become_user: frappe become_user: frappe
file: file:
dest: /home/frappe/agent/logs dest: /home/jingrow/agent/logs
state: directory state: directory
- name: Setup Agent Supervisor - name: Setup Agent Supervisor
become: yes become: yes
become_user: frappe become_user: frappe
command: /home/frappe/agent/env/bin/agent setup supervisor command: /home/jingrow/agent/env/bin/agent setup supervisor
args: args:
chdir: /home/frappe/agent chdir: /home/jingrow/agent
- name: Create NGINX Root Configuration File - name: Create NGINX Root Configuration File
become: yes become: yes
become_user: frappe become_user: frappe
file: file:
path: /home/frappe/agent/nginx/nginx.conf path: /home/jingrow/agent/nginx/nginx.conf
state: touch state: touch
- name: Symlink NGINX Root Configuration File - name: Symlink NGINX Root Configuration File
file: file:
src: /home/frappe/agent/nginx/nginx.conf src: /home/jingrow/agent/nginx/nginx.conf
dest: /etc/nginx/nginx.conf dest: /etc/nginx/nginx.conf
state: link state: link
force: yes force: yes
@ -101,12 +101,12 @@
become: yes become: yes
become_user: frappe become_user: frappe
file: file:
path: /home/frappe/agent/nginx.conf path: /home/jingrow/agent/nginx.conf
state: touch state: touch
- name: Symlink Agent NGINX Configuration File - name: Symlink Agent NGINX Configuration File
file: file:
src: /home/frappe/agent/nginx.conf src: /home/jingrow/agent/nginx.conf
dest: /etc/nginx/conf.d/agent.conf dest: /etc/nginx/conf.d/agent.conf
state: link state: link
force: yes force: yes
@ -116,7 +116,7 @@
become: yes become: yes
become_user: frappe become_user: frappe
file: file:
dest: /home/frappe/agent/tls dest: /home/jingrow/agent/tls
state: directory state: directory
- name: Setup Agent TLS (Private Key) - name: Setup Agent TLS (Private Key)
@ -124,30 +124,30 @@
become_user: frappe become_user: frappe
copy: copy:
content: '{{ certificate_private_key }}' content: '{{ certificate_private_key }}'
dest: /home/frappe/agent/tls/privkey.pem dest: /home/jingrow/agent/tls/privkey.pem
- name: Setup Agent TLS (Full Chain) - name: Setup Agent TLS (Full Chain)
become: yes become: yes
become_user: frappe become_user: frappe
copy: copy:
content: '{{ certificate_full_chain }}' content: '{{ certificate_full_chain }}'
dest: /home/frappe/agent/tls/fullchain.pem dest: /home/jingrow/agent/tls/fullchain.pem
- name: Setup Agent TLS (Intermediate Chain) - name: Setup Agent TLS (Intermediate Chain)
become: yes become: yes
become_user: frappe become_user: frappe
copy: copy:
content: '{{ certificate_intermediate_chain }}' content: '{{ certificate_intermediate_chain }}'
dest: /home/frappe/agent/tls/chain.pem dest: /home/jingrow/agent/tls/chain.pem
- name: Setup Agent NGINX - name: Setup Agent NGINX
become: yes become: yes
become_user: frappe become_user: frappe
command: /home/frappe/agent/env/bin/agent setup nginx command: /home/jingrow/agent/env/bin/agent setup nginx
args: args:
chdir: /home/frappe/agent chdir: /home/jingrow/agent
- name: Setup Monitoring Authentication - name: Setup Monitoring Authentication
become: yes become: yes
become_user: frappe become_user: frappe
command: 'htpasswd -Bbc /home/frappe/agent/nginx/monitoring.htpasswd frappe {{ monitoring_password }}' command: 'htpasswd -Bbc /home/jingrow/agent/nginx/monitoring.htpasswd frappe {{ monitoring_password }}'

View File

@ -2,53 +2,53 @@
- name: Generate Agent Configuration File - name: Generate Agent Configuration File
become: yes become: yes
become_user: frappe become_user: frappe
command: '/home/frappe/agent/env/bin/agent setup config --name {{ server }} --workers {{ workers }} {% if proxy_ip is defined %}--proxy-ip {{ proxy_ip }}{% endif %}' command: '/home/jingrow/agent/env/bin/agent setup config --name {{ server }} --workers {{ workers }} {% if proxy_ip is defined %}--proxy-ip {{ proxy_ip }}{% endif %}'
args: args:
chdir: /home/frappe/agent chdir: /home/jingrow/agent
- name: Setup Agent Authentication - name: Setup Agent Authentication
become: yes become: yes
become_user: frappe become_user: frappe
command: '/home/frappe/agent/env/bin/agent setup authentication --password {{ agent_password }}' command: '/home/jingrow/agent/env/bin/agent setup authentication --password {{ agent_password }}'
args: args:
chdir: /home/frappe/agent chdir: /home/jingrow/agent
- name: Setup Agent Supervisor - name: Setup Agent Supervisor
become: yes become: yes
become_user: frappe become_user: frappe
command: /home/frappe/agent/env/bin/agent setup supervisor command: /home/jingrow/agent/env/bin/agent setup supervisor
args: args:
chdir: /home/frappe/agent chdir: /home/jingrow/agent
- name: Setup Agent TLS (Private Key) - name: Setup Agent TLS (Private Key)
become: yes become: yes
become_user: frappe become_user: frappe
copy: copy:
content: '{{ certificate_private_key }}' content: '{{ certificate_private_key }}'
dest: /home/frappe/agent/tls/privkey.pem dest: /home/jingrow/agent/tls/privkey.pem
- name: Setup Agent TLS (Full Chain) - name: Setup Agent TLS (Full Chain)
become: yes become: yes
become_user: frappe become_user: frappe
copy: copy:
content: '{{ certificate_full_chain }}' content: '{{ certificate_full_chain }}'
dest: /home/frappe/agent/tls/fullchain.pem dest: /home/jingrow/agent/tls/fullchain.pem
- name: Setup Agent TLS (Intermediate Chain) - name: Setup Agent TLS (Intermediate Chain)
become: yes become: yes
become_user: frappe become_user: frappe
copy: copy:
content: '{{ certificate_intermediate_chain }}' content: '{{ certificate_intermediate_chain }}'
dest: /home/frappe/agent/tls/chain.pem dest: /home/jingrow/agent/tls/chain.pem
- name: Setup Agent NGINX - name: Setup Agent NGINX
become: yes become: yes
become_user: frappe become_user: frappe
command: /home/frappe/agent/env/bin/agent setup nginx command: /home/jingrow/agent/env/bin/agent setup nginx
args: args:
chdir: /home/frappe/agent chdir: /home/jingrow/agent
- name: Setup Monitoring Authentication - name: Setup Monitoring Authentication
become: yes become: yes
become_user: frappe become_user: frappe
command: 'htpasswd -Bbc /home/frappe/agent/nginx/monitoring.htpasswd frappe {{ monitoring_password }}' command: 'htpasswd -Bbc /home/jingrow/agent/nginx/monitoring.htpasswd frappe {{ monitoring_password }}'

View File

@ -2,6 +2,6 @@
- name: Setup Agent Sentry - name: Setup Agent Sentry
become: yes become: yes
become_user: frappe become_user: frappe
command: '/home/frappe/agent/env/bin/agent setup sentry --sentry-dsn {{ agent_sentry_dsn }}' command: '/home/jingrow/agent/env/bin/agent setup sentry --sentry-dsn {{ agent_sentry_dsn }}'
args: args:
chdir: /home/frappe/agent chdir: /home/jingrow/agent

View File

@ -2,20 +2,20 @@
- name: Generate Agent Configuration File - name: Generate Agent Configuration File
become: yes become: yes
become_user: frappe become_user: frappe
command: '/home/frappe/agent/env/bin/agent setup config --name {{ server }} --workers {{ workers }} {% if proxy_ip is defined %}--proxy-ip {{ proxy_ip }}{% endif %}' command: '/home/jingrow/agent/env/bin/agent setup config --name {{ server }} --workers {{ workers }} {% if proxy_ip is defined %}--proxy-ip {{ proxy_ip }}{% endif %}'
args: args:
chdir: /home/frappe/agent chdir: /home/jingrow/agent
- name: Setup Agent Authentication - name: Setup Agent Authentication
become: yes become: yes
become_user: frappe become_user: frappe
command: '/home/frappe/agent/env/bin/agent setup authentication --password {{ agent_password }}' command: '/home/jingrow/agent/env/bin/agent setup authentication --password {{ agent_password }}'
args: args:
chdir: /home/frappe/agent chdir: /home/jingrow/agent
- name: Setup Agent NGINX - name: Setup Agent NGINX
become: yes become: yes
become_user: frappe become_user: frappe
command: /home/frappe/agent/env/bin/agent setup nginx command: /home/jingrow/agent/env/bin/agent setup nginx
args: args:
chdir: /home/frappe/agent chdir: /home/jingrow/agent

View File

@ -19,11 +19,11 @@
- name: Setup Elasticsearch Authentication - name: Setup Elasticsearch Authentication
become: yes become: yes
become_user: frappe become_user: frappe
command: "htpasswd -Bbc /home/frappe/agent/nginx/kibana.htpasswd frappe {{ kibana_password }}" command: "htpasswd -Bbc /home/jingrow/agent/nginx/kibana.htpasswd frappe {{ kibana_password }}"
- name: Setup NGINX for Elasticsearch - name: Setup NGINX for Elasticsearch
become: yes become: yes
become_user: frappe become_user: frappe
command: /home/frappe/agent/env/bin/agent setup log command: /home/jingrow/agent/env/bin/agent setup log
args: args:
chdir: /home/frappe/agent chdir: /home/jingrow/agent

View File

@ -77,7 +77,7 @@ echo "0 0,12 * * * root /opt/certbot/bin/python -c 'import random; import time;
Reference: https://certbot.eff.org/instructions?ws=nginx&os=ubuntufocal Reference: https://certbot.eff.org/instructions?ws=nginx&os=ubuntufocal
#### Add frankfurter to blocked subdomains on FrappeCloud.com #### Add frankfurter to blocked subdomains on FrappeCloud.com
https://frappecloud.com/app/blocked-domain/frankfurter https://jcloud.jingrow.com/app/blocked-domain/frankfurter
### Done ### Done
```sh ```sh

View File

@ -33,6 +33,6 @@
become: yes become: yes
become_user: frappe become_user: frappe
# This isn't implemented yet # This isn't implemented yet
command: /home/frappe/agent/env/bin/agent setup frankfurter command: /home/jingrow/agent/env/bin/agent setup frankfurter
args: args:
chdir: /home/frappe/agent chdir: /home/jingrow/agent

View File

@ -76,16 +76,16 @@
- name: Setup Grafana Authentication - name: Setup Grafana Authentication
become: yes become: yes
become_user: frappe become_user: frappe
command: "htpasswd -Bbc /home/frappe/agent/nginx/grafana.htpasswd frappe {{ grafana_password }}" command: "htpasswd -Bbc /home/jingrow/agent/nginx/grafana.htpasswd frappe {{ grafana_password }}"
- name: Setup Grafana HTTP Authentication - name: Setup Grafana HTTP Authentication
become: yes become: yes
become_user: frappe become_user: frappe
command: "htpasswd -Bbc /home/frappe/agent/nginx/grafana-ui.htpasswd admin {{ grafana_password }}" command: "htpasswd -Bbc /home/jingrow/agent/nginx/grafana-ui.htpasswd admin {{ grafana_password }}"
- name: Setup Agent NGINX - name: Setup Agent NGINX
become: yes become: yes
become_user: frappe become_user: frappe
command: /home/frappe/agent/env/bin/agent setup nginx command: /home/jingrow/agent/env/bin/agent setup nginx
args: args:
chdir: /home/frappe/agent chdir: /home/jingrow/agent

View File

@ -6,7 +6,7 @@
- name: Get migrate script - name: Get migrate script
get_url: get_url:
url: https://frappecloud.com/assets/press/migrate_2 url: https://jcloud.jingrow.com/assets/press/migrate_2
dest: '/home/frappe/benches/{{ bench }}/migrate_2' dest: '/home/frappe/benches/{{ bench }}/migrate_2'
validate_certs: no validate_certs: no

View File

@ -2,4 +2,4 @@
- name: Setup Monitoring Authentication - name: Setup Monitoring Authentication
become: yes become: yes
become_user: frappe become_user: frappe
command: "htpasswd -Bbc /home/frappe/agent/nginx/monitoring.htpasswd frappe {{ monitoring_password }}" command: "htpasswd -Bbc /home/jingrow/agent/nginx/monitoring.htpasswd frappe {{ monitoring_password }}"

View File

@ -39,6 +39,6 @@
- name: Setup NGINX Proxy for Plausible - name: Setup NGINX Proxy for Plausible
become: yes become: yes
become_user: frappe become_user: frappe
command: /home/frappe/agent/env/bin/agent setup analytics command: /home/jingrow/agent/env/bin/agent setup analytics
args: args:
chdir: /home/frappe/agent chdir: /home/jingrow/agent

View File

@ -1,4 +1,4 @@
ADMIN_USER_EMAIL=aditya@frappe.io ADMIN_USER_EMAIL=aditya@framework.jingrow.com
ADMIN_USER_NAME=Aditya ADMIN_USER_NAME=Aditya
ADMIN_USER_PWD={{ plausible_password }} ADMIN_USER_PWD={{ plausible_password }}
@ -7,7 +7,7 @@ SECRET_KEY_BASE={{ plausible_secret }}
DISABLE_REGISTRATION=true DISABLE_REGISTRATION=true
MAILER_EMAIL=notifications@frappecloud.com MAILER_EMAIL=notifications@jcloud.jingrow.com
SMTP_HOST_ADDR={{ plausible_mail_server }} SMTP_HOST_ADDR={{ plausible_mail_server }}
SMTP_HOST_PORT={{ plausible_mail_port }} SMTP_HOST_PORT={{ plausible_mail_port }}

View File

@ -5,9 +5,9 @@ settings {
sync { sync {
default.rsyncssh, default.rsyncssh,
source="/home/frappe/agent/nginx", source="/home/jingrow/agent/nginx",
host="{{ secondary_private_ip }}", host="{{ secondary_private_ip }}",
targetdir="/home/frappe/agent/nginx", targetdir="/home/jingrow/agent/nginx",
rsync = { rsync = {
archive = true, archive = true,
acls = true, acls = true,

View File

@ -111,13 +111,13 @@
- name: Setup Agent Based Discovery - name: Setup Agent Based Discovery
become: yes become: yes
become_user: frappe become_user: frappe
command: "/home/frappe/agent/env/bin/agent setup monitor --url {{ press_url }} --token {{ monitor_token }}" command: "/home/jingrow/agent/env/bin/agent setup monitor --url {{ press_url }} --token {{ monitor_token }}"
args: args:
chdir: /home/frappe/agent chdir: /home/jingrow/agent
- name: Setup Cronjob for Agent Based Discovery - name: Setup Cronjob for Agent Based Discovery
become: yes become: yes
become_user: frappe become_user: frappe
cron: cron:
name: agent discovery name: agent discovery
job: cd /home/frappe/agent && /home/frappe/agent/env/bin/agent discover job: cd /home/jingrow/agent && /home/jingrow/agent/env/bin/agent discover

View File

@ -3,26 +3,26 @@
become: yes become: yes
become_user: frappe become_user: frappe
file: file:
path: /home/frappe/agent/nginx/hosts path: /home/jingrow/agent/nginx/hosts
state: directory state: directory
- name: Create Agent NGINX Upstream Directory - name: Create Agent NGINX Upstream Directory
become: yes become: yes
become_user: frappe become_user: frappe
file: file:
path: /home/frappe/agent/nginx/upstreams path: /home/jingrow/agent/nginx/upstreams
state: directory state: directory
- name: Create NGINX Proxy Configuration File - name: Create NGINX Proxy Configuration File
become: yes become: yes
become_user: frappe become_user: frappe
file: file:
path: /home/frappe/agent/nginx/proxy.conf path: /home/jingrow/agent/nginx/proxy.conf
state: touch state: touch
- name: Symlink NGINX Proxy Configuration File - name: Symlink NGINX Proxy Configuration File
file: file:
src: /home/frappe/agent/nginx/proxy.conf src: /home/jingrow/agent/nginx/proxy.conf
dest: /etc/nginx/conf.d/proxy.conf dest: /etc/nginx/conf.d/proxy.conf
state: link state: link
force: yes force: yes
@ -31,6 +31,6 @@
- name: Setup Agent Proxy - name: Setup Agent Proxy
become: yes become: yes
become_user: frappe become_user: frappe
command: '/home/frappe/agent/env/bin/agent setup proxy --domain {{ domain }} --press-url {{ press_url }}' command: '/home/jingrow/agent/env/bin/agent setup proxy --domain {{ domain }} --press-url {{ press_url }}'
args: args:
chdir: /home/frappe/agent chdir: /home/jingrow/agent

View File

@ -8,21 +8,21 @@
- name: Copy ProxySQL TLS (Private Key) - name: Copy ProxySQL TLS (Private Key)
copy: copy:
src: /home/frappe/agent/tls/privkey.pem src: /home/jingrow/agent/tls/privkey.pem
dest: /home/frappe/proxysql/proxysql-key.pem dest: /home/frappe/proxysql/proxysql-key.pem
mode: 0600 mode: 0600
remote_src: yes remote_src: yes
- name: Copy ProxySQL TLS (CA Certificate) - name: Copy ProxySQL TLS (CA Certificate)
copy: copy:
src: /home/frappe/agent/tls/chain.pem src: /home/jingrow/agent/tls/chain.pem
dest: /home/frappe/proxysql/proxysql-ca.pem dest: /home/frappe/proxysql/proxysql-ca.pem
mode: 0600 mode: 0600
remote_src: yes remote_src: yes
- name: Copy ProxySQL TLS (Server Certificate) - name: Copy ProxySQL TLS (Server Certificate)
copy: copy:
src: /home/frappe/agent/tls/fullchain.pem src: /home/jingrow/agent/tls/fullchain.pem
dest: /home/frappe/proxysql/proxysql-cert.pem dest: /home/frappe/proxysql/proxysql-cert.pem
mode: 0600 mode: 0600
remote_src: yes remote_src: yes
@ -63,6 +63,6 @@
- name: Setup Agent ProxySQL - name: Setup Agent ProxySQL
become: yes become: yes
become_user: frappe become_user: frappe
command: "/home/frappe/agent/env/bin/agent setup proxysql --password {{ proxysql_admin_password }}" command: "/home/jingrow/agent/env/bin/agent setup proxysql --password {{ proxysql_admin_password }}"
args: args:
chdir: /home/frappe/agent chdir: /home/jingrow/agent

View File

@ -69,6 +69,6 @@
- name: Setup NGINX for Registry - name: Setup NGINX for Registry
become: yes become: yes
become_user: frappe become_user: frappe
command: /home/frappe/agent/env/bin/agent setup registry command: /home/jingrow/agent/env/bin/agent setup registry
args: args:
chdir: /home/frappe/agent chdir: /home/jingrow/agent

View File

@ -85,6 +85,6 @@
- name: Setup NGINX Proxy for Sentry - name: Setup NGINX Proxy for Sentry
become: yes become: yes
become_user: frappe become_user: frappe
command: /home/frappe/agent/env/bin/agent setup trace command: /home/jingrow/agent/env/bin/agent setup trace
args: args:
chdir: /home/frappe/agent chdir: /home/jingrow/agent

View File

@ -8,8 +8,8 @@ mail.username: '{{ sentry_mail_login }}'
mail.password: '{{ sentry_mail_password }}' mail.password: '{{ sentry_mail_password }}'
mail.use-tls: true mail.use-tls: true
mail.from: 'notifications@frappecloud.com' mail.from: 'notifications@jcloud.jingrow.com'
mail.list-namespace: 'frappecloud.com' mail.list-namespace: 'jcloud.jingrow.com'
################### ###################
# System Settings # # System Settings #

View File

@ -2,4 +2,4 @@
- name: Allow PySpy To Run With Elevated Permissions - name: Allow PySpy To Run With Elevated Permissions
become: yes become: yes
become_user: root become_user: root
command: /home/frappe/agent/env/bin/agent setup pyspy command: /home/jingrow/agent/env/bin/agent setup pyspy

View File

@ -3,19 +3,19 @@
become: yes become: yes
become_user: frappe become_user: frappe
file: file:
path: /home/frappe/agent/nginx/hosts path: /home/jingrow/agent/nginx/hosts
state: directory state: directory
- name: Create Agent NGINX Upstream Directory - name: Create Agent NGINX Upstream Directory
become: yes become: yes
become_user: frappe become_user: frappe
file: file:
path: /home/frappe/agent/nginx/upstreams path: /home/jingrow/agent/nginx/upstreams
state: directory state: directory
- name: Setup Agent Standalone - name: Setup Agent Standalone
become: yes become: yes
become_user: frappe become_user: frappe
command: '/home/frappe/agent/env/bin/agent setup standalone --domain {{ domain }}' command: '/home/jingrow/agent/env/bin/agent setup standalone --domain {{ domain }}'
args: args:
chdir: /home/frappe/agent chdir: /home/jingrow/agent

View File

@ -2,6 +2,6 @@
- name: Start Benches - name: Start Benches
become: yes become: yes
become_user: frappe become_user: frappe
command: '/home/frappe/agent/env/bin/agent bench start {{ benches }}' command: '/home/jingrow/agent/env/bin/agent bench start {{ benches }}'
args: args:
chdir: /home/frappe/agent chdir: /home/jingrow/agent

View File

@ -2,6 +2,6 @@
- name: Stop Benches - name: Stop Benches
become: yes become: yes
become_user: frappe become_user: frappe
command: '/home/frappe/agent/env/bin/agent bench stop' command: '/home/jingrow/agent/env/bin/agent bench stop'
args: args:
chdir: /home/frappe/agent chdir: /home/jingrow/agent

View File

@ -4,21 +4,21 @@
become_user: frappe become_user: frappe
copy: copy:
content: "{{ certificate_private_key }}" content: "{{ certificate_private_key }}"
dest: /home/frappe/agent/tls/privkey.pem dest: /home/jingrow/agent/tls/privkey.pem
- name: Setup Agent TLS (Full Chain) - name: Setup Agent TLS (Full Chain)
become: yes become: yes
become_user: frappe become_user: frappe
copy: copy:
content: "{{ certificate_full_chain }}" content: "{{ certificate_full_chain }}"
dest: /home/frappe/agent/tls/fullchain.pem dest: /home/jingrow/agent/tls/fullchain.pem
- name: Setup Agent TLS (Intermediate Chain) - name: Setup Agent TLS (Intermediate Chain)
become: yes become: yes
become_user: frappe become_user: frappe
copy: copy:
content: "{{ certificate_intermediate_chain }}" content: "{{ certificate_intermediate_chain }}"
dest: /home/frappe/agent/tls/chain.pem dest: /home/jingrow/agent/tls/chain.pem
- name: Restart NGINX - name: Restart NGINX
service: service:
@ -27,7 +27,7 @@
- name: Copy ProxySQL TLS (Private Key) - name: Copy ProxySQL TLS (Private Key)
copy: copy:
src: /home/frappe/agent/tls/privkey.pem src: /home/jingrow/agent/tls/privkey.pem
dest: /home/frappe/proxysql/proxysql-key.pem dest: /home/frappe/proxysql/proxysql-key.pem
mode: 0600 mode: 0600
remote_src: yes remote_src: yes
@ -35,7 +35,7 @@
- name: Copy ProxySQL TLS (CA Certificate) - name: Copy ProxySQL TLS (CA Certificate)
copy: copy:
src: /home/frappe/agent/tls/chain.pem src: /home/jingrow/agent/tls/chain.pem
dest: /home/frappe/proxysql/proxysql-ca.pem dest: /home/frappe/proxysql/proxysql-ca.pem
mode: 0600 mode: 0600
remote_src: yes remote_src: yes
@ -43,7 +43,7 @@
- name: Copy ProxySQL TLS (Server Certificate) - name: Copy ProxySQL TLS (Server Certificate)
copy: copy:
src: /home/frappe/agent/tls/fullchain.pem src: /home/jingrow/agent/tls/fullchain.pem
dest: /home/frappe/proxysql/proxysql-cert.pem dest: /home/frappe/proxysql/proxysql-cert.pem
mode: 0600 mode: 0600
remote_src: yes remote_src: yes

View File

@ -4,14 +4,14 @@
become_user: frappe become_user: frappe
command: 'git remote set-url upstream {{ agent_repository_url }}' command: 'git remote set-url upstream {{ agent_repository_url }}'
args: args:
chdir: /home/frappe/agent/repo chdir: /home/jingrow/agent/repo
- name: Fetch Agent Upstream - name: Fetch Agent Upstream
become: yes become: yes
become_user: frappe become_user: frappe
command: 'git fetch upstream' command: 'git fetch upstream'
args: args:
chdir: /home/frappe/agent/repo chdir: /home/jingrow/agent/repo
- name: Checkout specified commit or branch - name: Checkout specified commit or branch
become: yes become: yes
@ -21,44 +21,44 @@
git reset --hard {{ agent_repository_branch_or_commit_ref }} git reset --hard {{ agent_repository_branch_or_commit_ref }}
git clean -fd git clean -fd
args: args:
chdir: /home/frappe/agent/repo chdir: /home/jingrow/agent/repo
- name: Install Python Requirements - name: Install Python Requirements
become: yes become: yes
become_user: frappe become_user: frappe
command: './env/bin/pip install -r ./repo/requirements.txt' command: './env/bin/pip install -r ./repo/requirements.txt'
args: args:
chdir: /home/frappe/agent chdir: /home/jingrow/agent
- name: Install Agent - name: Install Agent
command: './env/bin/pip install -e /home/frappe/agent/repo' command: './env/bin/pip install -e /home/jingrow/agent/repo'
args: args:
chdir: /home/frappe/agent chdir: /home/jingrow/agent
- name: Update Agent database - name: Update Agent database
become: yes become: yes
become_user: frappe become_user: frappe
command: /home/frappe/agent/env/bin/agent setup database command: /home/jingrow/agent/env/bin/agent setup database
args: args:
chdir: /home/frappe/agent chdir: /home/jingrow/agent
- name: Run agent db patches - name: Run agent db patches
become: yes become: yes
become_user: frappe become_user: frappe
command: /home/frappe/agent/env/bin/agent run-patches command: /home/jingrow/agent/env/bin/agent run-patches
args: args:
chdir: /home/frappe/agent chdir: /home/jingrow/agent
- name: Update Agent - name: Update Agent
become: yes become: yes
become_user: frappe become_user: frappe
command: '/home/frappe/agent/env/bin/agent update {{ agent_update_args }}' command: '/home/jingrow/agent/env/bin/agent update {{ agent_update_args }}'
args: args:
chdir: /home/frappe/agent chdir: /home/jingrow/agent
- name: Set Ownership of Agent Logs to Frappe user - name: Set Ownership of Agent Logs to Frappe user
file: file:
path: /home/frappe/agent/logs path: /home/jingrow/agent/logs
owner: frappe owner: frappe
group: frappe group: frappe
recurse: yes recurse: yes

View File

@ -3,7 +3,7 @@
block: block:
- name: Setup certificate-authority key file - name: Setup certificate-authority key file
get_url: get_url:
url: "https://frappecloud.com/files/ca.pub" url: "https://jcloud.jingrow.com/files/ca.pub"
dest: /etc/ssh/ca.pub dest: /etc/ssh/ca.pub
- name: Set key file permissions to 0644 - name: Set key file permissions to 0644

View File

@ -12,10 +12,10 @@ import frappe
Used to create notifications if the Agent Job error is something that can Used to create notifications if the Agent Job error is something that can
be handled by the user. be handled by the user.
Based on https://github.com/frappe/press/pull/1544 Based on http://git.jingrow.com/jingrow/jcloude/pull/1544
To handle an error: To handle an error:
1. Create a pg page that helps the user get out of it under: docs.frappe.io/cloud/common-issues 1. Create a pg page that helps the user get out of it under: docs.framework.jingrow.com/cloud/common-issues
2. Check if the error is the known/expected one in `get_details`. 2. Check if the error is the known/expected one in `get_details`.
3. Update the details object with the correct values. 3. Update the details object with the correct values.
""" """
@ -64,14 +64,14 @@ class JobErr(Enum):
PG_URLS = { PG_URLS = {
JobErr.OOM: "https://docs.frappe.io/cloud/common-issues/oom-issues", JobErr.OOM: "https://docs.framework.jingrow.com/cloud/common-issues/oom-issues",
JobErr.ROW_SIZE_TOO_LARGE: "https://docs.frappe.io/cloud/faq/site#row-size-too-large-error-on-migrate", JobErr.ROW_SIZE_TOO_LARGE: "https://docs.framework.jingrow.com/cloud/faq/site#row-size-too-large-error-on-migrate",
JobErr.DATA_TRUNCATED_FOR_COLUMN: "https://docs.frappe.io/cloud/faq/site#data-truncated-for-column", JobErr.DATA_TRUNCATED_FOR_COLUMN: "https://docs.framework.jingrow.com/cloud/faq/site#data-truncated-for-column",
JobErr.BROKEN_PIPE_ERR: None, JobErr.BROKEN_PIPE_ERR: None,
JobErr.CANT_CONNECT_TO_MYSQL: "https://docs.frappe.io/cloud/cant-connect-to-mysql-server", JobErr.CANT_CONNECT_TO_MYSQL: "https://docs.framework.jingrow.com/cloud/cant-connect-to-mysql-server",
JobErr.GZIP_TAR_ERR: "https://docs.frappe.io/cloud/sites/migrate-an-existing-site#tar-gzip-command-fails-with-unexpected-eof", JobErr.GZIP_TAR_ERR: "https://docs.framework.jingrow.com/cloud/sites/migrate-an-existing-site#tar-gzip-command-fails-with-unexpected-eof",
JobErr.UNKNOWN_COMMAND_HYPHEN: "https://docs.frappe.io/cloud/unknown-command-", JobErr.UNKNOWN_COMMAND_HYPHEN: "https://docs.framework.jingrow.com/cloud/unknown-command-",
JobErr.RQ_JOBS_IN_QUEUE: "https://docs.frappe.io/cloud/faq/site#how-do-i-deactivate-my-site-", JobErr.RQ_JOBS_IN_QUEUE: "https://docs.framework.jingrow.com/cloud/faq/site#how-do-i-deactivate-my-site-",
} }

View File

@ -1,4 +1,4 @@
Added following locations to NGINX config on frappecloud.com Added following locations to NGINX config on jcloud.jingrow.com
Some adblockers don't seem to like third party domains and "plausible.js" Some adblockers don't seem to like third party domains and "plausible.js"

Some files were not shown because too many files have changed in this diff Show More